【问题标题】:How to use a 'Like' condition with wildcards on a DataTable如何在 DataTable 上使用带有通配符的“Like”条件
【发布时间】:2013-07-30 13:05:23
【问题描述】:

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

如何匹配这样的模式?

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

【问题讨论】:

  • 此查询是否在您的 sql 上运行?

标签: vb.net datatable dataset sql-like


【解决方案1】:

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

但您可以使用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

输出:

Foo
FooBar

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 2011-07-08
    相关资源
    最近更新 更多