sql >> データベース >  >> RDS >> Sqlserver

C#パラメータとしてリストを使用してSQLテーブルに挿入

    に似たユーザー定義タイプを設定します。

    CREATE TYPE [dbo].[tableOf_Ints] AS TABLE(
        [ID] [int] NULL
    )
    GO
    

    そうすれば、このように使用できます。

    public static SqlCommand CreateCommand(List<int> ints)
    {
        var dt = new DataTable();
        dt.Columns.Add("ID",typeof(Int32));
        for (int i = 0; i < ints.Count; i++)
        {
            dt.Rows.Add(ints[i]);
        }
    
        SqlCommand cmd = new SqlCommand("SomeStoredProc");
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.CommandTimeout = 120;
        var param1 = cmd.Parameters.AddWithValue("@SomeParam", dt);
        param1.SqlDbType = SqlDbType.Structured;
        param1.TypeName = "dbo.tableOf_Ints";
    
        return cmd;
    }
    

    このようなストアドプロシージャがあると仮定します。

    CREATE PROCEDURE [dbo].[SomeStoredProc]  
        @SomeParam TableOf_Ints READONLY
    AS
    BEGIN
    END
    


    1. MySQL CSVインポート:日時値

    2. 特定の条件に基づくmysqlエクスポートテーブル

    3. インデックスの一部ではない外部キーの列に関するAndroidRoomのコンパイル時の警告。どういう意味ですか?

    4. 改行文字のmysql_real_escape_string挿入を2回実行します。改行を取り戻す方法は?