0

リスト オブジェクトをストアド プロシージャのパラメータとして渡す方法はありますか?

たとえば、

List<class1> Allobj = new List<class1>();
// assume Allobj .Count=5,(5 class1 objects)

現在、ストアドプロシージャを次のように呼び出しています

intResult = _helper.ExecuteNonQuery(base.Transaction, CommandType.StoredProcedure, "usp_InsertpurchaseEnquirydetails", Allobj );

または、リストを渡す他の方法はありますか(少なくとも多次元のsqlparameter配列に追加しますか?

可能であれば、ストアド プロシージャから渡す方法と反復する方法は?

4

2 に答える 2

1

を探していTableValueParametersます。SqlServer 2008 以降、この機能が追加されました。パラメータとして aを渡すと役立ちますDataTable

msdnのテーブル値パラメーターを確認してください

于 2013-10-11T06:17:06.243 に答える
1

テーブル値パラメーターを使用して、テーブルまたはリストを SQL ストアド プロシージャに渡すことができます

簡単な手順:

1) SQL サーバー管理スタジオでテーブル値パラメーターを作成する

2) 作成されたテーブル値パラメーターとしてパラメーターを定義します (読み取り専用にする必要があります)。

3) C# sp パラメータ タイプを System.Data.SqlDbType.Structured に設定します。

4)リストをCLR DataTableとしてストアドプロシージャに渡します

以下のリンクは完全なコード例です。

http://www.codeproject.com/Articles/39161/C-and-Table-Value-Parameters

于 2013-10-11T06:23:40.037 に答える