sql >> Databasteknik >  >> RDS >> Sqlserver

Lägga till flera parameteriserade variabler till en databas i c#

Eftersom du använder c# och sql server 2008 , kan du använda en tabellvärderad parameter för att infoga flera rader i din databas. Här är en kort beskrivning om hur du gör detta:

Först måste du skapa en användardefinierad tabelltyp:

CREATE TYPE MyTableType AS TABLE
(
    Col1 int,
    Col2 varchar(20) 
)
GO

Sedan måste du skapa en lagrad procedur som accepterar denna tabelltyp som en parameter

CREATE PROCEDURE MyProcedure
(
    @MyTable dbo.MyTableType READONLY -- NOTE: table valued parameters must be Readonly!
)
AS

INSERT INTO MyTable (Col1, Col2)
SELECT Col1, Col2 
FROM @MyTable

GO

Slutligen, exekvera denna lagrade procedur från din c#-kod:

DataTable dt = new DataTable();
dt.Columns.Add("Col1", typeof(int));
dt.Columns.Add("Col2", typeof(string));

// Fill your data table here

using (var con = new SqlConnection("ConnectionString"))
{
    using(var cmd = new SqlCommand("MyProcedure", con))
    {
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.Add("@MyTable", SqlDbType.Structured).Value = dt;
        con.Open();
        cmd.ExecuteNonQuery();
    }
}


  1. Varning:mysqli_query() förväntar sig att parameter 1 är mysqli, resurs given

  2. Hämta RADER som COLUMNS (SQL Server dynamisk PIVOT-fråga)

  3. MySQL DROP UTLANDSNYCKEL Begränsning

  4. Hur får man första och sista posten från en sql-fråga?