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 过滤器参数的主要内容,如果未能解决你的问题,请参考以下文章

text Visual Basic代码命令

text Visual Basic代码Vue设置

text Visual Basic代码Vue扩展/插件

text Visual Basic的字典打印机

为啥某些 Microsoft 语言被称为“视觉”? (Visual C#、Visual Basic .NET、Visual C++)

Basic Visual Basic 程序错误 - 可能是变量/语法错误(标记为 Fat)