如何在DataTable上使用带有通配符的“Like”条件

时间:2013-07-30 11:41:58

标签: vb.net datatable dataset sql-like

当我尝试在Like上使用以下DataTable条件时,我得到Exception

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

如何匹配这样的模式?

另外我看到一些文章说明在数据表格的情况下中间一定不能有狂野的字符。那么上面的案例怎么办?

1 个答案:

答案 0 :(得分: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的