Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Crie um tipo de tabela definido pelo usuário em c# para usar no procedimento armazenado do sql server


A opção mais simples é criar um DataTable no código C# e passe-o como um parâmetro para seu procedimento. Supondo que você tenha criado um tipo de tabela definido pelo usuário como:
CREATE TYPE [dbo].[userdefinedtabletype] AS TABLE(
    [ID] [varchar](255) NULL,
    [Name] [varchar](255) NULL
)

então no seu código C# você faria:
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);

Lembre-se de especificar SqlDbType.Structured como o tipo de parâmetro e especifique o nome que você usou na criação de seu UDT.