2016-03-29 7 views
0
 `OleDbConnection connect = new OleDbConnection(connectionString); 
     connect.Open(); 
     string lastName = tBoxSurname.Text; 
     OleDbDataAdapter adapter = new OleDbDataAdapter(@"SELECT * FROM Players WHERE LastName=" + lastName, connect); 

     DataSet dataset = new DataSet(); 
     adapter.Fill(dataset, "Players"); 

     dataGridView1.DataSource = dataset; 
     dataGridView1.DataMember = "Players"; 
     connect.Close();` 

なぜこの問題が続くのか分かりません。私はさまざまなソリューションを探して、それらをたくさん試しましたが、私は同じ問題を抱え続けています。もし私が最近データベースについて学び始めたので、誰かが何が起こっているのか説明してください。OleDbDataAdapter .Fill()メソッドは、1つまたは複数の必須パラメータに値が指定されていないという例外を返します。

+0

!! SQLインジェクション警告!これを読んでください:http://bobby-tables.com/ –

答えて

1

は、この方法を試してください。

OleDbDataAdapter adapter = new OleDbDataAdapter(); 
OleDbCommand command = new OleDbCommand("SELECT * FROM Players WHERE LastName = ?", connect); 

command.Parameters.Add("LastName", OleDbType.VarChar).Value = tBoxSurname.Text; 

adapter.SelectCommand = command; 

スニペットとしてではなく画像として次回あなたのコードを投稿してください! :)

+0

空のデータテーブル – augustovandyk

+1

@ augustovandykを返すだけで、 "tBoxSurname.Text"のコマンドパラメータに関する引用符を削除します。リテラル "tBoxSurname.Text"ではなく、クエリに入力した値を実行する必要があります。あなたは実際の姓の誰も持っていない:) – DRapp

+0

私はそれの周りに引用符を持っているtBoxSurname.Textを理解していない。すべての返信をありがとう。 – augustovandyk

関連する問題