Visual Basic就像Wild Card一样

时间:2015-08-18 12:52:42

标签: vb.net ssis datarow

我正在使用Script Task构建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

1 个答案:

答案 0 :(得分:0)

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

因此,对于我习惯于喜欢MS SQL服务器中的语句,您会认为您的代码为:

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

是对的。

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

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

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