2011-02-18 63 views
0

我無法使用正則表達式在vb.net中使用我的sql查詢。VB.net正則表達式字符語法

如果我寫

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) 

它返回null,即使有包含 「ABC」 的小區。當我直接在數據庫上運行它時,它會正確返回該行。

如果我刪除[A-Z],它在兩種情況下都能正常工作。

+0

REGEXP'^ [A-Z] BC「 - 你錯過正確的REGEXP'^ [A-Z] BC'」 – SergeS 2011-02-18 15:38:00

回答

0

是否有可能涉及「二進制字符串」?

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

REGEXP與二進制字符串一起使用時是不區分大小寫,除了 。

它還會發出有關多字節字符的警告。

在 字節爲單位的方式正則表達式和RLIKE運營商合作,所以他們不 多字節安全並可能產生 多字節 字符集意想不到的效果。此外,這些 運算符會將字符按其 字節值進行比較,並且重音字符 可能不會相等,即使給定排序規則中的 將它們視爲相等。

由於VB.Net在Unicode中工作,有可能某種字符集或代碼頁調整可能在幕後發生?