2017-05-04 90 views
0

嗨,我是C#的新手,並且在文本框的文本更改事件上篩選數據網格時遇到問題。而不是它在名爲BarCode的列中查找值。它似乎在查看列名。這是迄今爲止的教程適合我的目的的代碼。基於文本框過濾Datagridview

 private void Barcode_txtBx_TextChanged(object sender, EventArgs e) 
    { 
     string data = "Select * from BookInTable"; 
     DataSet ds = new DataSet(); 
     OleDbDataAdapter adapter = new OleDbDataAdapter(new OleDbCommand(data, connection)); 
     adapter.Fill(ds); 
     DataView DV = new DataView(); 
     DV.Table = ds.Tables[0]; 
     DV.RowFilter = "BarCode = " + Barcode_txtBx.Text.Trim(); 
     dGrid.DataSource = DV; 
    } 
+0

'DV.RowFilter =「BarCode ='」+ Barcode_txtBx.Text.Trim()+「'」;'您需要按照SQL語法用單引號包裝值。 –

+0

謝謝你的工作。但是,我該如何去說Barcode_txtBx.Text的條形碼 –

+0

來解釋更好。在使用LIKE命令進行訪問時,可以進行過濾,以便即使只是將字母a放入文本框中,它也會過濾到以a開頭的所有記錄,並且在鍵入記錄列表變短時記錄。 –

回答

1

謝謝Chetan。我起身DV.RowFilter =「BarCode LIKE」「+ Barcode_txtBx.Text.Trim()+」'「但是這似乎只是和LI =相同。這是因爲我錯過了%。

+0

是的......如果您沒有使用'%',就好像沒什麼用處。所以如果你想在你的查詢中使用LIKE,最好在要搜索的值周圍使用'%'。但明智地使用它,否則如果數字行更多,性能會降低。 –