2017-11-05 15 views
-4
private void button2_Click(object sender, EventArgs e) 
{  
    OleDbConnection cnn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\bbbde\Database2.mdb"); 
    cnn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\bbbde\Database2.mdb"; 
    OleDbDataAdapter da = new OleDbDataAdapter("select count(*) Form nameList where name='" + textBox1.Text + "'and password ='" + textBox2 + "'", cnn); 

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

    if (dt.Rows[0][0].ToString() == "1") 
    { 
     this.Hide(); 
     Form2 frm = new Form2(); 
     frm.Show(); 
    } 

のコマンドを使用してのエラーは、私が取得されて接続することができます。は、どのように私はC#でSQLとここアダプタ

System.Data.OleDb.OleDbException:「の構文エラー(演算子がありません)クエリ式 'count(*)Form nameList name =' '、password =' System.Windows.Forms.TextBox、Text: ''。

+0

クエリでは 'textBox2.Text'である必要があります。ところで、このコードはSQLインジェクションを受けやすいです。パラメータ化されたコマンドを使用する必要があります。 –

+0

https://stackoverflow.com/a/33688556/2946329 –

+0

「フォーム」とは何ですか? '%'を選択し、Chetanがすでに述べたようにパラメータを使用してください。 –

答えて

1

あなたは

  1. が欠落しているその間違った右のフォームここTextBox2を
  2. からのもので、それは textBox2.Textする必要がありますので、パスワードではなく、そのテキストとしてTextBox2をオブジェクトを割り当てます

修正コード

うまく
private void button2_Click(object sender, EventArgs e) 
{  
    OleDbConnection cnn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\bbbde\Database2.mdb"); 
    cnn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\bbbde\Database2.mdb"; 
    OleDbDataAdapter da = new OleDbDataAdapter("select count(*) FROM nameList where name='" + textBox1.Text + "'and password ='" + textBox2.Text + "'", cnn); 
    DataTable dt = new DataTable(); 
    da.Fill(dt); 
    if (dt.Rows[0][0].ToString() == "1") 
    { 

     this.Hide(); 
     Form2 frm = new Form2(); 
     frm.Show(); 
    } 
0

、私はそれがOleDbDataAdapterおよ使用され、新しいmethonで自分のコードを書き換える必要があります。 問題私はC#でからのログインをクリートしたいされており、access.iを接続するためにOleDbDataAdapterおよを使用して方法を知ってはいけませんログインボタンに選択機能を使用するには、それをどのように書くのですか?

ます。private void button2_Click(オブジェクト送信者、EventArgsの電子)

{ 

     oleDbDataAdapter1.SelectCommand.CommandText = 

       "select * from book where usersname = '" + textBox1.Text + "' "; 


     oleDbDataAdapter1.SelectCommand.CommandText = 

       "select * from book where password = '" + textBox2.Text + "' "; 


     dataSet11.Clear(); 

     oleDbDataAdapter1.Fill(dataSet11); 

     DataTable dt = new DataTable(); 


     oleDbDataAdapter1.Fill(dt); 

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

     { 


      this.Hide(); 

      Form2 frm = new Form2(); 

frm.Show();

 } 

    else 

     { 

MessageBox.Show(「ユーザー名とパスワードを確認してください」);

 } 

    } 
関連する問題