C# Visual Studio 2008 C-我可以在dataviewgrid中搜索数据吗?

C# Visual Studio 2008 C-我可以在dataviewgrid中搜索数据吗?,c#,search,datagridview,bindingsource,C#,Search,Datagridview,Bindingsource,我在网上到处找了找,仍然找不到任何有效的方法。我知道这将是一件我没有想到的简单事情,但我已经浪费了数小时试图解决它,但仍然一事无成。下面是我的代码。它只是填充一个datagridview,然后我希望用户能够通过在表单的文本框中输入联系人姓名并单击搜索按钮进行搜索。非常感谢您的帮助 private void frmCustomers_Load(object sender, EventArgs e) { sqlDataAdapterCustomers.Fill(da

我在网上到处找了找,仍然找不到任何有效的方法。我知道这将是一件我没有想到的简单事情,但我已经浪费了数小时试图解决它,但仍然一事无成。下面是我的代码。它只是填充一个datagridview,然后我希望用户能够通过在表单的文本框中输入联系人姓名并单击搜索按钮进行搜索。非常感谢您的帮助

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

        }


    }
使用

CustomerBindingSource.Filter=ContactName='+ContactName+'

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

ExecuteOnQuery用于非查询-即,它用于不返回结果集的语句

因为您似乎使用的是强类型数据集,所以只需右键单击表并选择“添加->查询”。指定使用SQL语句,然后选择返回的行,然后输入SELECT*FROM Customers,其中ContactName=@ContactName并单击Next。指定一个或两个方法,并通过ContactName、GetCustomerByContactName为它们提供更好的名称。然后单击Finish


这将生成一个方法GetCustomerByContactNamecontactName,该方法将返回一个带有匹配客户(若有)的数据表。您可以使用它绑定到您喜欢的任何控件。

据我所知,您有一个绑定到SQL数据源的联系人DataGridView。当用户输入搜索查询并单击“提交”时,是否要过滤DataGridView以仅显示其搜索结果?非常感谢!正是我需要的!你不会相信我花了这么多时间在这上面,我也不会意识到这是如此简单。非常感谢:@down选民:那么,原因是什么?简单地投反对票是没有多大帮助的,除非附带一些信息,说明为什么这是一个糟糕的答案。