2016-06-22 8 views
0

私はログインしている人として私のフォームを表示します。私はログインフォームを持っています。パスワードとユーザー名を入力すると、電話帳のフォームが開きます。私は、入力された番組のユーザ名、今やそれだけで私はサインアップフォームで入力した役割、ログインすると1つの値しか表示されません

public partial class PhoneBook : Form 
    { 
     Thread th; 
     private string Role; 
     SqlConnection con = Helper.GetConnectionStringDatabase(); 
     public PhoneBook(string role) 
     { 
      InitializeComponent(); 
      Role = role; 
     } 

     private void Biodata_Load(object sender, EventArgs e) 
     { 
      this.ActiveControl = tbName; 
      tbName.Focus(); 
      Display(); 
      LoggedAs.Text = "You are logged in as: " + Role; 
      if (Role != "Admin\t") 
      { 
       btnDelete.Enabled = false; 
      } 

     } 

を示しており、ここにあるログインコード

public void btnLogin_Click(object sender, EventArgs e) 
     { 
      DataTable dt = new DataTable(); 

      //CheckForDatabaseExistance(); 

      using (SqlConnection con = Helper.GetConnectionStringDatabase()) 
      { 

       SqlDataAdapter sda = 
        new SqlDataAdapter(
         "SELECT Role FROM LOGIN WHERE UserName='" + tbUser.Text + "' AND Password='" + tbPassword.Text + 
         "' ", con); 

       sda.Fill(dt); 
      } 
      CheckIfTxtBoxexAreNotEmpty(); 

      if (dt.Rows.Count == 1) 
       { 
        this.Hide(); 
        PhoneBook ss = new PhoneBook(dt.Rows[0][0].ToString()); 
        ss.Show(); 
       } 
      else 
      { 
       MessageBox.Show("Please check your username and password"); 
       tbUser.Clear(); 
       tbPassword.Clear(); 
      } 
     } 
+2

ログインフォームのコードは物事がここで働いているかに入るために必要とされています。 – C4u

+1

私は質問を更新しました:) – Zorge

+1

ちょうど 'SQLインジェクション'とあなたのユーザー名とパスワードをエスケープするための世話Googleのための方法。このコードを使用すると、資格情報を知らなくてもログインできます。 – C4u

答えて

0

まず、この行にユーザー名を選択します。

SqlDataAdapter sda = new SqlDataAdapter 
(
    // Pick the right username-column 
    "SELECT Role, Username FROM LOGIN WHERE UserName='" + tbUser.Text + "' AND Password='" + tbPassword.Text + 
"' ", con); 

次に、このようconstuctorを変更:

private string Role; 
private string User; 
public PhoneBook(string role, string user) 
{ 
    InitializeComponent(); 
    Role = role; 
    User = user; 
} 

それからちょうどあなたの呼び出しを修正:いけない指標について

を知っ

PhoneBook ss = new PhoneBook(dt.Rows[0][0].ToString(), dt.Rows[1][0].ToString()); 

OR

PhoneBook ss = new PhoneBook(dt.Rows[0][0].ToString(), dt.Rows[0][1].ToString()); 

あなたはその後行われます。あなたのUserPhoneBookのユーザー名が表示されます。あなたは、単にUserRoleを置き換えることができます。

private void Biodata_Load(object sender, EventArgs e) 
{ 
    this.ActiveControl = tbName; 
    tbName.Focus(); 
    Display(); //        | 
    //           v Here 
    LoggedAs.Text = "You are logged in as: " + User + " - " + Role; 
    if (Role != "Admin\t") 
    { 
     btnDelete.Enabled = false; 
    } 
} 
+0

ありがとう、私は 'ロール'と 'ユーザー'の両方を表示したい:) – Zorge

+0

@Bopa私の編集を確認してください。 – C4u

+0

もう一つ質問できますか?[リンク](http://stackoverflow.com/questions/37970398/passing-valus-for-database-to-form) – Zorge

関連する問題