2016-11-17 5 views
0

私はVSとC#の新機能です。私が扱っている製品のバックエンドの理解を深めるために教えています。私はいくつかの情報とログインフォームを持つ小さなデータベースを作成しました。すべてが正しくコンパイルされているように見えますが、クリックするとログインボタンが反応せず、キャンセルボタンも表示されません。私が紛失しているかどうかは分かりませんが、コードは次のとおりです。C#ログインフォーム、ログインボタンが応答しない

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 
using System.Data.SqlClient; 

namespace CorpLogin 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 
     //DB Connection String 
     string cs = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\CORPORATION.mdf;" + 
     "Integrated Security=True"; 

    //Login Button clicked 
    private void LoginButton1_Click(object sender, EventArgs e) 
    { 
     //Validates text entered 
     if (userNameText1.Text == "") 
     { 
      MessageBox.Show("USERNAME and PASSWORD are required fields."); 
      return; 
     } 
     if (passwordText1.Text == "") 
     { 
      MessageBox.Show("USERNAME and PASSWORD are required fields."); 
      return; 
     } 

     try 
     { 
      //Connect to SQL 
      SqlConnection con = new SqlConnection(cs); 
      con.Open(); 
      SqlCommand cmd = new SqlCommand("select * from USERS where [email protected]" + 
       "and [email protected]", con); 
      cmd.Parameters.AddWithValue("@username", userNameText1.Text); 
      cmd.Parameters.AddWithValue("@password", passwordText1.Text); 
      SqlDataAdapter da = new SqlDataAdapter(cmd); 
      DataSet ds = new DataSet(); 
      da.Fill(ds); 
      con.Close(); 
      int count = ds.Tables[0].Rows.Count; 

      //Show new form or fail message 
      if (count == 1) 
      { 
       this.Hide(); 
       CorpView cv = new CorpView(); 
       cv.Show(); 
       } 
       else 
       { 
        MessageBox.Show("ACCESS DENIED"); 
       } 
      } 
      //Catch program exceptions 
      catch(Exception ex) 
      { 
      MessageBox.Show(ex.Message); 
      } 
     } 
     //Cancel Button Clicked 
     private void CancelButton1_Click(object sender, EventArgs e) 
     { 
     Application.Exit(); 
     } 
    } 
} 

何か助けていただければ幸いです。ありがとう。

+0

Winformsを使用していますか?また、どのバージョンのVS? – Hank

+1

偶然にあなたのボタンの名前を変更しましたか?イベントハンドラは大丈夫です。 – Fang

+0

フォームデザイナーのボタンをクリックして、この「LoginButton1_Click」のイベントを見て、ボタンのドロップダウンをクリックしてください。そのメソッドを選択してください。そうでない場合は、ボタンクリックイベントをダブルクリックして、 – MethodMan

答えて

2

また、イベントハンドラ登録を追加する必要があります。

これは、ダブルクリックボタンによって、または手動でフォームにデザイナーで行うことができます

LoginButton1.Click += new System.EventHandler(LoginButton1_Click); 
0

前述したように、私の問題の原因でした。私はボタンにマップされたイベントハンドラを持っていませんでした。デザイナーから、プロパティを探し、イベントメソッド(稲妻アイコン)を選択しました。私はログインボタンをLoginButton1_Clickに設定し、キャンセルボタンではCancelButton1_Clickに設定しました。

データベース接続でエラーが発生していますが、そのトラブルシューティング方法を知っています。キャンセルボタンは、プログラムを正常に閉じます。

関連する問題