2013-07-30 20 views
2

當我嘗試使用在DataTable以下Like條件,我得到一個Exception如何使用帶有通配符「喜歡」條件上一個DataTable

For Each ResultRow As DataRow In tempDS.Tables(TableName).Select("Item like '<Root><Row>%<Rowid>%</Rowid></Row><Maxrowid>%</Maxrowid></Root> '") 
    Resultval = Resultval & ResultRow.Item(Colname) 
Next 

如何匹配這樣的模式?

另外我看到一些文章指出,在數據表的情況下,中間不能有中間的字符。那麼上述情況怎麼辦?

+0

請問這個查詢你的SQL運行? –

回答

2

事實上,這種表達式中的通配符只允許在模式的開始和結束處,或模式的結尾處,或模式的開始處。

但是,您可以利用VB.Net's Like Operator,它允許使用這種通配符並使用例如過濾器來過濾行。一個linq查詢。

例子:

Dim table = New DataTable() 
table.Columns.Add("Item", GetType(String)) 

table.Rows.Add("Foo") 
table.Rows.Add("Bar") 
table.Rows.Add("FooBar") 

Dim filtered = From row in table.AsEnumerable() 
       Where row.Field(Of String)("Item") LIKE "F*o*" 

For Each row In filtered 
    Console.WriteLine(row("Item")) 
Next 

輸出:


FooBar的