Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Creare un tipo di tabella definito dall'utente in c# da utilizzare nella stored procedure del server sql

L'opzione più semplice è creare una DataTable in codice C# e passalo come parametro alla tua procedura. Supponendo che tu abbia creato un tipo di tabella definito dall'utente come:

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

quindi nel tuo codice C# faresti:

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

Ricordarsi di specificare SqlDbType.Structured come tipo di parametro e specifica il nome che hai utilizzato per creare il tuo UDT.