Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

C# Wstaw do tabeli SQL z listą jako parametrem

Skonfiguruj typ zdefiniowany przez użytkownika podobny do.

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

Wtedy możesz go używać w ten sposób.

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;
}

Zakładając, że masz taki przechowywany proces.

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server — Auto-inkrementacja, która umożliwia UPDATE instrukcji

  2. Jak zapisać wideo w bazie danych za pomocą c#?

  3. Problem we wdrażaniu projektu DB

  4. Jakie są zalety VistaDB

  5. COALESCE w klauzuli Gdzie?