Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Erstellen Sie einen benutzerdefinierten Tabellentyp in c#, der in einer gespeicherten SQL Server-Prozedur verwendet werden soll

Die einfachste Möglichkeit besteht darin, eine DataTable zu erstellen in C#-Code und übergeben Sie es als Parameter an Ihre Prozedur. Angenommen, Sie haben einen benutzerdefinierten Tabellentyp wie folgt erstellt:

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

dann würden Sie in Ihrem C#-Code Folgendes tun:

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

Denken Sie daran, SqlDbType.Structured anzugeben als Typ des Parameters und geben Sie den Namen an, den Sie beim Erstellen Ihres UDT verwendet haben.