2017-05-31 3 views
-5

私はコーディングが初めてで、このコードに助けが必要です。エラーはなく、プログラムは実行中です。スーパバイザまたはキャッシャーの別のフォームに行くことはできません。また、これもデバッグ出力にあります。 SqlException(0x80131904)。ヘルプが必要ですが、エラーはありませんが、このマルチユーザフォームコード(C#)の別のフォームに行くことはできません

SqlConnection myCon = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\User\Desktop\Assignment_IOOP\Assignment_IOOP\LoginDB.mdf;Integrated Security=True"); 
    public string UserType; 
    public Form1() 
    { 
     InitializeComponent(); 


    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     trydb(); 

    } 

    private void trydb() { 
     try 
     { 
      SqlDataAdapter MyDataAdapter = new SqlDataAdapter("select * from Logindata where username '" +Usertext.Text+ "' and password '" +Passtext.Text+"' ;", myCon); 
      DataTable logicaldb = new DataTable(); 
      MyDataAdapter.Fill(logicaldb); 
      int count = logicaldb.Rows.Count; 
      if (count > 0) 
      { 

       UserType = logicaldb.Rows[0][4].ToString(); 

       if (UserType == "Supervisor") 
       { 
        Manage_Product spv = new Manage_Product(); 
        spv.Show(); 
        this.Hide(); 
       } 
       else if (UserType == "Cashier") 
       { 
        Cashier csh = new Cashier(); 
        csh.Show(); 
        this.Hide(); 
       } 
       else 
       { 
        MessageBox.Show("Unknown User Type"); 
       } 

      } 
     } 
     catch (Exception a) { 
      Console.Write("error" + a.ToString()); 
     } 
+0

すべきですか? – Stefan

+1

少なくとも、達成しようとしていることをあなたの質問に含めるべきです。また、最小限で完全で検証可能な例を含めることを検討してください。https://stackoverflow.com/help/mcve – Hawkings

+2

'= '演算子がありません。また、特にパスワードを扱うときにクエリをパラメータ化する必要があります – HoneyBadger

答えて

0

エラーは、使用する前に接続を開いていないためです。まず、 "myCon.Open();"という行で接続を開きます。 SqlDataAdapterで使用する前に、where句のselectクエリで '='演算子を使用します。あなたもあなたの質問にそれを忘れてしまった。

あなたのコードはエラーを生成しているライン

private void trydb() { 
    try 
    { 
     myCon.Open(); 
     SqlDataAdapter MyDataAdapter = new SqlDataAdapter("select * from Logindata where username ='" +Usertext.Text+ "' and password ='" +Passtext.Text+"' ;", myCon); 
     DataTable logicaldb = new DataTable(); 
     MyDataAdapter.Fill(logicaldb); 
     //rest of your code here 
    } 
    catch 
    { 
     //exception code here 
    } 
    } 
+0

ありがとう、問題は修正されました:) – Bill

関連する問題