2

で次の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

そのようなパターンをどのように一致させるのですか?

また、データテーブルの場合、真ん中にワイルドキャラクターがあってはならないという記事を見ました。では、上記のケースはどのように行うことができますか?

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

出力:

フーフー
バー

于 2013-07-30T12:13:26.017 に答える