首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DataTable.Select

DataTable.Select
EN

Stack Overflow用户
提问于 2011-07-03 01:58:59
回答 3查看 28.9K关注 0票数 4

我有一个DataTable,它有一个名为Name的列。

代码语言:javascript
复制
DataTable dt = new DataTable();
DataColumn dc = new DataColumn();
dc.DataType = System.Type.GetType("System.String");
dc.ColumnName = "Name";
dt.Columns.Add(dc);

我正在尝试只选择具有TextBox中的内容的DataRows,但我不知道如何选择。这是我想要的。

代码语言:javascript
复制
dt.Select("string.Compare(Name.ToLower().Contains(" + textBox1.Text.ToLower() + ")");

有没有办法通过Select来做到这一点/我应该尝试一下吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-07-03 02:07:46

您可以使用LINQ to Dataset来执行此操作(通过AsEnumerable):

代码语言:javascript
复制
var results = dt.AsEnumerable().Where(dr => dr.Field<string>("Name").ToLower().Contains(textBox1.Text.ToLower()));
票数 5
EN

Stack Overflow用户

发布于 2011-07-03 02:19:27

我不相信你正在使用的表达式的语法是有效的。这里有valid syntax here的描述。要对dt.Select执行contains风格的操作,可以使用LIKE运算符。此外,您还需要将区分大小写设置为false:

代码语言:javascript
复制
dt.CaseSensitive = false;
dt.Select("Name LIKE '%" + textBox1.Text + "%'");
票数 3
EN

Stack Overflow用户

发布于 2017-01-14 16:19:51

您可以使用select

代码语言:javascript
复制
dt.select("Name = '"+textbox.text.trim()+"'");

如果您想选择类似于textbaox的内容,那么您可以选择

代码语言:javascript
复制
dt.select("Name LIKE '%"+textbox.text.trim()+"%'");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6558669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档