2016-06-22 6 views
0

Ich möchte, dass mein Formular als wer bin ich angemeldet bin. Ich habe Login-Formular und wenn Sie in Passwort und Benutzernamen eingeben öffnet Telefonbuch-Formular, wo ich möchte, neben allem anderen, ein Etikett zu zeigen Benutzernamen, die ich eingegeben, zeigt es jetzt nur Rolle, die ich in AnmeldeformularAngemeldet als zeigt nur einen Wert

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; 
      } 

     } 

eingeben und hier anmelden Code

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

Der Code für das Login-Formular, in zu erhalten ist notwendig, wie die Dinge hier zu arbeiten. – C4u

+1

Ich aktualisierte Frage :) – Zorge

+1

Nur nebenbei Google für 'Sql injection' und kümmern uns darum, Ihren Benutzernamen und Ihr Passwort zu entkommen. Mit diesem Code konnte ich mich einloggen, ohne irgendwelche Zugangsdaten zu kennen. – C4u

Antwort

0

wählen sie zuerst Ihren Benutzernamen in dieser Zeile:

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

dann den Konstruktor wie folgt ändern:

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

Dann korrigieren Sie einfach Ihren Anruf:

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

ODER

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

Nicht wissen, über den Index

Sie sind dann fertig. Ihr User in PhoneBook wird seinen Benutzernamen haben. Sie können dann ersetzen Sie einfach Role mit User:

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

Vielen Dank, ich möchte es sowohl "Rolle" und "User" zeigen :) – Zorge

+0

@Bopa Überprüfen Sie meine Bearbeitung dann. – C4u

+0

Kann ich Ihnen noch eine Frage stellen [link] (http://stackoverflow.com/questions/37970398/passing-valus-for-database-to-form) – Zorge

Verwandte Themen