我有一个DataGridView
,与this设置类似,从几个表中提取数据。它很棒。好帖子和答案。继续该帖子中的示例,我现在想要创建一个过滤器,通过在帐户说明中使用DataGridView
参数,生成适用于特定帐户的LIKE
中的所有交易。
我有一个解决方案,通过检查accounts表中的描述并获取IDAccount值然后在DataGridView
过滤器中使用该值,但我希望有一种更自动化的方式使用绑定。
有什么想法吗?谢谢你的建议。
修改:
假设我有一个名为AccountDescriptionBox的TextBox
控件,我希望能够做类似的事情
dataGridView1.Filter = string.Format("{0} LIKE '{1}'", "IDAccount", AccountDescriptionBox.Text);
显然,这不起作用,因为IDAccount是一个整数,而不是一个字符串。我上面提到的解决方案是
string filter = string.Empty;
Regex searchTerm = new Regex(Regex.Escape(AccountDescriptionBox.Text).Replace('\\', '.'), RegexOptions.IgnoreCase);
var accts = from acct in dataSet1.Accounts
let matches = searchTerm.Matches(acct.Description)
where matches.Count > 0
select acct.ID;
for (int i; i < accts.Count() - 1; i++)
{
filter += string.Format("IDAccount = {0} OR ",accts.ElementAt(i));
}
filter += string.Format("IDAccount = {0}",accts.Last());
dataGridView1.Filter = filter;
这很有效,但很麻烦。如果有办法,我宁愿通过绑定来做。
答案 0 :(得分:1)
查看DataView类。它允许您对记录进行排序和过滤,并执行简单的类似SQL的操作。
答案 1 :(得分:-1)
我认为没有办法直接使用数据绑定。我将解决方案作为编辑发布,以回应@ CodeBlend的评论。