像通配符一样的 Visual Basic

Visual Basic Like Wild Card

我正在构建其中包含脚本任务的 SSIS 包。

有这一行:

Dim rows As DataRow() = dsUnsorted.Tables(0).[Select]("FileName like '*.csv'", "FileDate ASC")

这个工作正常。

但我需要将其更改为:

Dim rows As DataRow() = dsUnsorted.Tables(0).[Select]("FileName like 'sales*.csv'", "FileDate ASC")

其中 like 命令应该是 'sales*.csv' 而不是 '*.csv'。当我进行更改时,脚本任务遇到错误。

应该怎么写才正确?

Source

不幸的是,数据表中使用的 like 语句 select 只允许在您尝试过滤的字符串的开头和结尾使用通配符。

所以对我来说,习惯于喜欢 MS SQL 服务器中的语句,你会认为你的代码:

Dim rows As DataRow() = dsUnsorted.Tables(0).[Select]("FileName like 'sales*.csv'", "FileDate ASC")

会是正确的。

但是,您需要实际拆分比较以检查您正在检查的字段的开头和结尾。

正确完成任务的方法是添加一个 and 语句来检查字段的开头和结尾,因为这是唯一允许使用通配符的地方。

Dim rows As DataRow() = dsUnsorted.Tables(0).[Select]("FileName like '*.csv' and FileName like 'sales*'", "FileDate ASC")