2017-02-12 10 views
1

データベースでC#でフォームにログを作成しようとしていますが、何をすべきか分からず、SQLExceptionがsda.Fill(dt)ここでは、コードSqlExceptionが処理されていません

 SqlConnection con = new SqlConnection(@"Data Source=.\LOUI;Initial Catalog=login_db;User ID=sa;Password=1029384756"); 
     SqlDataAdapter sda = new SqlDataAdapter("Select Count (*) From login_tbl where username = '" + User_txt.Text + "'and password = '" +Pass_txt.Text+ "'",con); 
     DataTable dt = new DataTable(); 
     sda.Fill(dt); 

     if (dt.Rows[0][0].ToString() == "1") 
     { 

      this.Hide(); 
      adminpanel ap = new adminpanel(); 
      ap.Show(); 

     } 
     else 
     { 
      MessageBox.Show("Check Username or Password"); 
     } 
+4

try/catchブロックにコードをラップし、例外を処理します。例外は、問題が何であるかを伝えています。また、あなたのコードは** SQLインジェクション**にとって*オープンであることに注意してください。セキュリティの観点からは、ユーザーがデータベース上で任意のコードを実行できることを意味します。デバッグの観点からは、ここで実行しているSQLコードがわからないことを意味します。 – David

答えて

2

try 
{ 
    sda.Fill(dt); 
} 
catch (SQLException ex) 
{ 
    Console.WriteLine(ex.ToString()); 
} 

sda.Fill(dt);を交換し、新しい出力を含めるようにあなたの質問を編集です。

+0

ありがとうございます。私はそれを試してみます – jlouie

0
try 
{ 

    SqlConnection con = new SqlConnection(@"Data Source=.\LOUI;InitialCatalog=login_db;User ID=sa;Password=1029384756");//problem is here 

    SqlDataAdapter sda = new SqlDataAdapter("Select Count (*) From login where name = '" + User_txt.Text + "'and pass = '" + Pass_txt.Text + "'", con); 

    DataTable dt = new DataTable(); 
    sda.Fill(dt); 

    if (dt.Rows[0][0].ToString() == "1") 
    { 
     this.Hide(); 
     adminpanel ap = new adminpanel(); 
     ap.Show(); 
    } 
    else 
    { 
     MessageBox.Show("Check Username or Password"); 
    } 
} 
catch (Exception z) 
{ 
    MessageBox.Show("Connection error"); 
} 
+0

書式を修正し、変更の説明を追加してください。しかも、これは本当に答えではありません。 –

+0

@PeterBons書式を修正しました。承認待ち: – Benni

+0

これはまさに私と同じ回答です。 – Benni

関連する問題