DataTable.Select

时间:2011-07-02 17:58:59

标签: c#

我有一个名为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 /我是否应该尝试呢?

3 个答案:

答案 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()+"%'");