C# 基于文本框筛选Datagridview

C# 基于文本框筛选Datagridview,c#,winforms,C#,Winforms,嗨,我是C#新手,在文本框的文本更改事件上过滤数据网格时遇到问题。而不是在列中查找称为条形码的值。它似乎在看列名。这是迄今为止我从教程中得到的代码,这些教程适合我的目的 private void Barcode_txtBx_TextChanged(object sender, EventArgs e) { string data = "Select * from BookInTable"; DataSet ds = new DataSet();

嗨,我是C#新手,在文本框的文本更改事件上过滤数据网格时遇到问题。而不是在列中查找称为条形码的值。它似乎在看列名。这是迄今为止我从教程中得到的代码,这些教程适合我的目的

     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;
    } 

谢谢Chetan。我访问了DV.RowFilter=“BarCode-LIKE'”+BarCode\u txtBx.Text.Trim()+“”,但这似乎只是做了与=相同的事情,而不是像。这是因为我缺少%。

DV.RowFilter=“BarCode=”+BarCode\u txtBx.Text.Trim()+”您需要按照SQL语法用单引号将值包装起来。谢谢您的帮助。但我该如何说像Barcode_txtBx.text这样的条形码才能更好地解释。在使用LIKE命令访问时,您可以进行筛选,这样即使您只是将字母a放入文本框中,它也会筛选到以a开头的所有记录,并且当您键入时,记录列表会变短。
DV.RowFilter=“BarCode-LIKE'”+BarCode\u txtBx.Text.Trim()+“%”
是。。。如果您不使用
%
,则Like没有多大用处。因此,如果要在查询中使用LIKE,最好在要搜索的值周围使用
%
。但要明智地使用它,否则如果行数更多,性能会下降。