Visual Basic:DataTable.Search 过滤器参数
Posted
技术标签:
【中文标题】Visual Basic:DataTable.Search 过滤器参数【英文标题】:Visual Basic: DataTable.Search filter args 【发布时间】:2016-04-04 15:12:03 【问题描述】:我正在尝试搜索 SQL 记录表,以查找并提取那些字段与我的条件匹配的记录。
字段名称是 ID,它是一个 13 位的代码,在 SQL 本身中存储为 Integer。我需要通过 ID 字段的前六位(不是主键字段)搜索每条记录。
下面是代码:
Dim results As DataSet.DataRow() = DataSet.DataTable.Select("LEFT(ID,6) = 123456")
这是错误信息:
The expression contains undefined function call LEFT().
我怀疑问题出在 SQL 过滤器中的 LEFT 函数上 - 因为如果我运行 .Select on,例如“ID = some-ID-value”,相应的记录会正确返回。
使用 .Select() 时可能无法识别 SQL 函数?或者我应该使用 CAST?
【问题讨论】:
您使用的是 SQL Server 还是 mysql?它们不是一回事。 DataTable Select Expression 语法和支持的单词 【参考方案1】:另一种方法是使用现有的 DataTable 创建一个 DataView;应用过滤器并将过滤后的行放入另一个数据表中。这是安全代码。
DataView dataView = new DataView(DataSet.DataTable);
dataView.RowFilter = "ID LIKE '123456%'";
var filtredData = dataView.ToTable();
【讨论】:
没有意识到你在 vb.net;希望您可以转换为等效代码 最好解释一下你在这里做什么。 谢谢!这行得通。这是VB中的解决方案: Dim results As DataSet.DataRow() = DataSet.DataTable.Select("ID LIKE '%123456%'") 在开头和结尾添加百分比将检查 ID 中任何位置的数字,但不仅仅是在开头...以上是关于Visual Basic:DataTable.Search 过滤器参数的主要内容,如果未能解决你的问题,请参考以下文章
为啥某些 Microsoft 语言被称为“视觉”? (Visual C#、Visual Basic .NET、Visual C++)