Ale*_*lex 4 .net c# oledb datatable
基于这个问题:如何在数据集上运行查询?
我正在尝试从我的数据集中查询数据表,其中文本包含字符串,类似于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);
}
Run Code Online (Sandbox Code Playgroud)
这给出了System.Data.SyntaxError错误.
是否可以在数据表中查询包含子字符串的文本?有没有更好的方法呢?
几件事:
Contains那么你的值应该有% (就像SQL一样) 所以你的陈述应该是:
DataRow[] tempDataRows = tbl.Select("USER_ID Like '%" + textBox1.Text + "%' OR THE_NAME Like '%" + textBox1.Text +"%');
Run Code Online (Sandbox Code Playgroud)
您还可以使用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));
Run Code Online (Sandbox Code Playgroud)
您需要在字符串周围添加单引号:
DataRow[] tempDataRows = tbl.Select("USER_ID Like '" + textBox1.Text + "' OR THE_NAME Like '" + textBox1.Text + "'");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18070 次 |
| 最近记录: |