【问题标题】:Search datagridview via textbox c# .NET通过文本框 c# .NET 搜索 datagridview
【发布时间】:2014-10-16 13:44:16
【问题描述】:

我有这种情况,我需要使用我拥有的文本框搜索我的 datagridview,我尝试复制其他网站,但它给我的是错误、新列和更多错误, 我的代码是这样的,用于将我的数据从数据库加载到 gridview

private void cashier_update_Load(object sender, EventArgs e)     
{        
    con.ConnectionString = @"";
    con.Open();    
    SqlDataAdapter sda = new SqlDataAdapter("SELECT entry_no,prod_id, prod_name,      wantiti,item_status FROM Table_3 Where item_status= 'ACTIVE'", con);    
    DataTable dt = new DataTable();   
    sda.Fill(dt);   
    dataGridViewX1.Rows.Clear();    
    foreach (DataRow item in dt.Rows)    
    {   
        int n = dataGridViewX1.Rows.Add();    
        dataGridViewX1.Rows[n].Cells[0].Value = item[0].ToString();    
        dataGridViewX1.Rows[n].Cells[1].Value = item[1].ToString();    
        dataGridViewX1.Rows[n].Cells[2].Value = item[2].ToString();    
        dataGridViewX1.Rows[n].Cells[3].Value = item[3].ToString();   
    }     
    con.Close();   
}  

现在我需要通过 key_up 或 textchange 搜索第 2 列 prod_name。

【问题讨论】:

  • youtube.com/watch?v=z0HwGx10xz8 这个但我得到了新的专栏,
  • 电影中的方法是一种非常耗电的方法。您正在建立连接并在每次按键时查询数据库。最好将数据缓存在 RAM 中。

标签: c# .net search datagrid visual-studio-2013


【解决方案1】:

您可以使用过滤器对象来执行此操作。但首先您必须使用数据源将数据绑定到gridview(dataGridViewX1.datasource = dt;在您的情况下,您可以删除foreach循环,因为自动添加列和行)然后您可以使用过滤数据bindingsource.filter.

有关过滤器的更多信息,您可以查看以下答案:How to filter DataGridView in C# Win Forms?

完整的文档可以在这里找到:http://msdn.microsoft.com/en-us/library/system.windows.forms.bindingsource.filter(v=vs.110).aspx

【讨论】:

  • 编辑:已经做到了,而且成功了,谢谢,无论如何...你知道如何更改我的列名吗?因为它将我的数据库列显示为wantiti,但我希望它显示数量,谢谢
  • dgDatagrid.columns["name_used_in_database"].name = "new_name"。您也可以使用索引来选择您的列,但当您不想交换列的顺序时,名称会更节省
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多