2017-02-22 5 views
1

私はこのコードを使用して、最大3人のユーザの朝のシフト、夜のシフト、マネージャではないユーザログイン時のログイン情報を確認します。ユーザ名に基づいてログイン資格情報をチェックしてフォームを開きます。C#

私はユーザー名に基づいて開いて別のフォームでした。私は意味:

  • MorningShiftfrmCashier
  • EveningShiftfrmCashier3
  • Managerが、私はそれを行うことができますどのよう

frmAdminを開く開く開きますか?

ユーザー名はコンボボックスで選択され、パスワードが入力されます。

以下のようなものが動作するはず
private void button1_Click_1(object sender, EventArgs e) 
{ 
    string cmdText = "select Count(*) from Staff where [email protected] and [email protected]"; 
    using (System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data source=|DataDirectory|\\crepeDB.accdb;")) 
    using (System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand(cmdText, conn)) 
    { 
     conn.Open(); 
     cmd.Parameters.AddWithValue("@p1", comboBox1.Text); 
     cmd.Parameters.AddWithValue("@p2", textBox1.Text); // Is this a variable or a textbox? 
     int result = (int)cmd.ExecuteScalar(); 
     if (result > 0) 
     { 
      this.Hide(); 
      var form1 = new frmCashier(); 
      form1.Closed += (s, args) => this.Close(); 
      form1.Show(); 
     } 
     else 
      MessageBox.Show("..."); 
    } 
} 
+0

、データベース内のスタッフテーブルは 'Shift'列が含まれていますか? –

+0

よく、いいえ、SName、SPass(モーニングシフト、1234 - 夕方シフト、5555 - マネージャー、9999)の下にこれら3つのレコードが含まれています –

答えて

1

Form form1; 
if (result > 0) 
{ 
    this.Hide(); 
    if (comboBox1.Text.ToLower() == "MorningShift") { 
     form1 = new frmCashier(); 
    } 
    else if (comboBox1.Text.ToLower() == "EveningShift") { 
     form1 = new frmCashier3(); 
    } 
    else if (comboBox1.Text.ToLower() == "Manager") { 
     form1 = new frmAdmin(); 
    } 
    else { 
     throw new Exception("unknown user"); 
    } 
    form1.Closed += (s, args) => this.Close(); 
    form1.Show(); 
} 
+0

Worked Perfectly –

関連する問題