6

パラメータを介して値を受け取る「IN」句を含むASP.NETTableAdapterを介して実行したいクエリがあります。

私の質問は、このパラメータをどのように指定するのですか?私は次のような条件文を書くことを考えました:

AND b.group_category_id in (@ParamList)

ここで、@ ParamListはパラメータの文字列です(例: "4,12,45,23")が、指定されたIDは整数であるため、文字列を整数に変換できないと文句を言います。これは理にかなっていますが、ASP.NET TableAdapterのSQLステートメントでそのようなリストを指定する方法はありますか?

4

4 に答える 4

1

http://dotnet.org.za/johanvw/archive/2008/06/13/mssql-split-function.aspxを見て、実際に文字列として渡すことができます。解決策というよりは回避策のようなものです。ただし、これは MSSQL を使用する場合にのみ使用できます。

于 2009-03-16T10:26:46.603 に答える
0

私自身の質問に次のように答えます:それはできません。

于 2012-10-25T10:21:14.313 に答える
0

@ParamList をカンマ区切りの文字列として渡し、文字列を解析して結果を #table に挿入し、IN を使用して #table を検索できます。

AND b.group_category_id in (select group_category_id from #group_category_id_list)

これとは別に、動的 SQL (exec() ステートメント) を使用しない限り、選択肢は限られていますが、可能であればそれを避けることをお勧めします。

于 2009-03-16T10:35:05.350 に答える