53

ADO.NETを使用してストアドプロシージャにテーブル値パラメータを渡す方法は?

4

5 に答える 5

78
  1. SQL Server でタイプを作成します

    CREATE TYPE [dbo].[MyDataType] As Table
    (
        ID INT,
        Name NVARCHAR(50)
    )
    
  2. 作成手順:

    CREATE PROCEDURE [dbo].[MyProcedure]
    (
        @myData As [dbo].[MyDataType] Readonly
    )
    AS
    
    BEGIN
        SELECT * FROM @myData
    END
    
  3. C# で DataTable を作成します

    DataTable myDataTable = new DataTable("MyDataType");
    myDataTable.Columns.Add("Name", typeof(string));
    myDataTable.Columns.Add("Id", typeof(Int32));
    myDataTable.Rows.Add("XYZ", 1);
    myDataTable.Rows.Add("ABC", 2);
    
  4. SQL パラメータの作成:

    SqlParameter parameter = new SqlParameter();
    parameter.ParameterName = "@myData";
    parameter.SqlDbType = System.Data.SqlDbType.Structured;
    parameter.Value = myDataTable;
    command.Parameters.Add(parameter); 
    
于 2012-05-02T07:49:45.917 に答える
0

この質問はHow to pass table value parameters to stored procedure from .net codeの複製です。DataTableaまたは anの使用を示す例については、その質問を参照してくださいIEnumerable<SqlDataRecord>

于 2012-05-28T05:16:28.893 に答える