2

当我尝试Like在 a 上使用以下条件时,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

如何匹配这样的模式?

我还看到一些文章指出,在数据表的情况下,中间不能有通配符。那么上面的情况怎么办呢?

4

1 回答 1

2

实际上,此类表达式中的通配符只允许在模式的开头和结尾,或在模式的结尾,或在模式的开头。

但是您可以使用VB.Net 的 Like 运算符,它允许使用此类通配符并使用例如 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

输出:

Foo
FooBar

于 2013-07-30T12:13:26.017 回答