2011-03-24 78 views
0

我看遍了网络,仍然无法找到任何有效的工具。我知道这将是一件简单的事情,我只是没有想到,但我已经浪费了几个小时试图整理出来,仍然没有。所以我的代码如下。它只是填充datagridview,然后我希望用户能够通过在表单上的文本框中输入联系人姓名进行搜索,然后单击搜索按钮。帮助将不胜感激!Visual Studio 2008 C# - 我可以在dataviewgrid中搜索数据吗?

private void frmCustomers_Load(object sender, EventArgs e) 
    { 

     sqlDataAdapterCustomers.Fill(dataSetNWCustomers1.Customers); 

    } 


    private void btnContactSearch_Click(object sender, EventArgs e) 
    { 
     String contactName = txtContactSearch.Text; 

     if (txtContactSearch.TextLength > 0) 
     { 
      int r = customersBindingSource.Find("ContactName", contactName); 
      customersBindingSource.IndexOf(r); 

     } 


    } 
+0

所以我明白,你有一个绑定到SQL数据源的联系人的DataGridView。当用户输入搜索查询并单击提交时,您想过滤DataGridView以仅显示其搜索结果? – GregB 2011-03-24 00:50:40

+0

是的,这是这个想法。 – 6TTW014 2011-03-24 00:55:54

回答

1

使用

customersBindingSource.Filter = "ContactName ='" + contactName + "'";

如果你已经加载了绑定源上的数据。由于DataGridView绑定到绑定源,它将自行更新以仅显示搜索到的联系人。

+0

非常感谢!正是我需要的!你不会相信我花在这上面的时间,而不是我意识到这很简单。非常感谢:) – 6TTW014 2011-03-24 01:06:20

0

ExecuteNonQuery用于查询 - 也就是说,它是用于不返回结果集的语句。

由于您似乎在使用强类型数据集,只需右键单击您的表并选择Add-> Query。指定使用SQL语句,然后选择“返回行”,然后输入SELECT * FROM Customers WHERE ContactName = @ContactName并单击“下一步”。指定一个或两个方法,并给它们更好的名称(FillByContactName,GetCustomerByContactName)。然后点击“完成”。

这将生成一个方法“GetCustomerByContactName(contactName)”,它将返回一个DataTable与匹配客户(如果有的话)。你可以用它来绑定你喜欢的任何控件。

+0

@Downvoter:这个答案有什么问题? – 2011-03-24 02:30:17

+0

@Downvoter:那么,原因?除非附有一些说明为什么这是一个不好的答案的信息,否则简单地降低投票并不是很有帮助。 – 2011-03-24 22:44:41

相关问题