VB.net正则表达式字符语法

时间:2011-02-18 15:33:58

标签: sql mysql vb.net

我无法使用正则表达式在vb.net中使用我的sql查询。

如果我写

Dim localConnection As New MySqlConnection = ConnectionNew(DBName)
Dim da as MysqlDataAdapter
Dim ds as new DataSet
Dim rows as long

SQLstatement= "SELECT `col1` FROM `myTable` WHERE `col1` REGEXP '^[A-Z]BC$'" 

da = New MySqlDataAdapter(SQLstatement, localConnection)

rows = da.Fill(Ds)

即使存在包含“ABC”的单元格,它也会返回null。当我直接在数据库上运行它时,它会正确返回行。

如果我删除[A-Z],它在两种情况下都能正常工作。

1 个答案:

答案 0 :(得分:0)

是否可能涉及“二进制字符串”?

来自:http://dev.mysql.com/doc/refman/5.1/en/regexp.html

  

除了以外,REGEXP不区分大小写   与二进制字符串一起使用时。

它还会发出有关多字节字符的警告。

  

REGEXP和RLIKE运营商的工作   字节方式,所以它们不是   多字节安全,可能会产生   多字节的意外结果   字符集。另外,这些   运营商比较他们的人物   字节值和重音字符   即使a,也可能无法比较   鉴于整理将它们视为平等。

由于VB.Net在Unicode中工作,是否有可能在幕后发生某种字符集或代码页错位?