我有一个名为Name的DataTable。
DataTable dt = new DataTable();
DataColumn dc = new DataColumn();
dc.DataType = System.Type.GetType("System.String");
dc.ColumnName = "Name";
dt.Columns.Add(dc);
我正在尝试仅选择具有TextBox中的内容的DataRows,但我不知道如何操作。这就是我想要的。
dt.Select("string.Compare(Name.ToLower().Contains(" + textBox1.Text.ToLower() + ")");
有没有办法用Select /我是否应该尝试呢?
答案 0 :(得分:5)
您可以使用LINQ to Dataset执行此操作(通过AsEnumerable):
var results = dt.AsEnumerable().Where(dr => dr.Field<string>("Name").ToLower().Contains(textBox1.Text.ToLower()));
答案 1 :(得分:3)
我不相信您使用的表达式的语法是有效的。有valid syntax here的描述。要使用contains
获得dt.Select
样式操作,您可以使用LIKE
运算符。您还需要将区分大小写设置为false:
dt.CaseSensitive = false;
dt.Select("Name LIKE '%" + textBox1.Text + "%'");
答案 2 :(得分:1)
您可以使用选择
dt.select("Name = '"+textbox.text.trim()+"'");
如果你想选择类似于textbaox的东西,那么你喜欢
dt.select("Name LIKE '%"+textbox.text.trim()+"%'");