2016-03-29 28 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();` 

Neden bu soruna neden devam ettiğini anlamıyorum. Farklı çözümler aradım ve bunlardan çok çalıştım ama aynı problemi almaya devam ediyorum. Birisi neler olduğunu açıklayabilirse, çünkü yakın zamanda veritabanlarını öğrenmeye başladım.OleDbDataAdapter .Fill() yöntemi, bir veya daha fazla gerekli parametre için verilen bir değer vermez.

+0

!! SQL Enjeksiyon Uyarısı! Lütfen şunu okuyun: http://bobby-tables.com/ –

cevap

1

Bunu dene:

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; 

ve bir resim olarak bir pasajı olarak kodunuzu dahaki sefere göndermeden edin! :)

+0

Sadece boş bir veri tablosunu – augustovandyk

+1

@augustovandyk döndürmeye devam edin, "tBoxSurname.Text" komut parametresi çevresindeki tırnakları kaldırın. Sorgu için girilen her şeyin değerini isterseniz, literal "tBoxSurname.Text" değil. Bu gerçek soyadı olan kimseye sahip olmayacaksın :) – DRapp

+0

Hangi tBoxSurname.Text öğesinin etrafında tırnak olduğunu anlamıyorum. Yine de tüm cevaplar için teşekkürler. – augustovandyk

İlgili konular