我知道我已经多次问过这个问题了,但我得到的答案可以帮助我。 请提出我已经尝试过1周或更长时间的建议。
我有用户控制我的dataGrid。有工具栏带按钮打开查找表格有一个按钮和一个文本框。在此按钮上单击我调用方法Search()
,如下所示:
private void btnFind_Click_1(object sender, EventArgs e)
{
Inventory i = new Inventory();
i.Search(txtFind.Text);
}
这就是方法Search
的工作原理:
public void Search(string searchWord)
{
AcidDBDataContext db = new AcidDBDataContext();
var q = db.ProcSearch(searchWord);
dgvInventory.DataSource = q;
}
此方法在库存中工作正常,但是当我单击btnFind它什么都不做时,我使用调试器并看到查询正在正确执行并从表中获取行。
问题出现在这一行:dgvInventory.DataSource = q;
我正在使用c#winForms和SQL Server 2008
答案 0 :(得分:1)
您是否尝试过dgvInventory.ResetBindings()?
[编辑:错误陈述.Refresh代替.ResetBindings]
答案 1 :(得分:1)
您可以使用BindingSource
BindingSource bs = new BindingSource();
然后在搜索(string searchWord)
//dgvInventory.DataSource = q;
bs.DataSource = q;
if (dgvInventory.DataSource == null)
dgvInventory.DataSource = bs;
else
bs.ResetBindings(false);