sql >> Databasteknik >  >> RDS >> Sqlserver

Skapa en användardefinierad tabelltyp i c# att använda i sql server lagrad procedur

Det enklaste alternativet är att skapa en DataTable i C#-kod och skicka den som en parameter till din procedur. Förutsatt att du har skapat en användardefinierad tabelltyp som:

CREATE TYPE [dbo].[userdefinedtabletype] AS TABLE(
    [ID] [varchar](255) NULL,
    [Name] [varchar](255) NULL
)

sedan i din C#-kod skulle du göra:

DataTable dt = new DataTable();
dt.Columns.Add("ID", typeof (string));
dt.Columns.Add("Name", typeof (string));
//populate your Datatable

SqlParameter param = new SqlParameter("@userdefinedtabletypeparameter", SqlDbType.Structured)
{
    TypeName = "dbo.userdefinedtabletype",
    Value = dt
};
sqlComm.Parameters.Add(param);

Kom ihåg att ange SqlDbType.Structured som typ av parameter och ange namnet du har använt för att skapa din UDT.



  1. MySQLSyntaxErrorException nära ? när du försöker köra PreparedStatement

  2. 3 sätt att ersätta NULL med "N/A" i SQLite

  3. Introduktion till temporära tabeller i SQL Server

  4. Att använda kolumnalias i WHERE-satsen i MySQL-frågan ger ett fel