基于这个问题:how to run query on dataset?
我试图从我的数据集中查询数据表,其中文本包含一个字符串,类似于 String.Contains
方法或 sql LIKE 运算符。
这是我迄今为止尝试过的:
private void textBox1_TextChanged(object sender, EventArgs e)
{
DataTable tbl = globals.UserDataSet.Tables[0];
DataRow[] tempDataRows = tbl.Select("USER_ID Like " + textBox1.Text + " OR THE_NAME Like " + textBox1.Text);
}
这给出了 System.Data.SyntaxError 错误。
是否可以在数据表中查询包含子字符串的文本?有没有更好的方法来做到这一点?
最佳答案
几件事:
Contains
那么你的值应该有 %
(就像 SQL) 所以你的陈述应该是:
DataRow[] tempDataRows = tbl.Select("USER_ID Like '%" + textBox1.Text + "%' OR THE_NAME Like '%" + textBox1.Text +"%');
您还可以使用 LINQ to DataSet/DataTable 来过滤您的结果,例如:
var query = tbl.AsEnumerable()
.Where(r => r.Field<string>("USER_ID").Contains(textBox1.Text) &&
r.Field<string>("THE_NAME").Contains(textBox1.Text));
关于c# - 查询包含文本的数据表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27553016/