Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

ADO.NET classique - Comment passer UDT à une procédure stockée ?

Cet article pourrait être un peu plus d'aide.

Essentiellement, vous allez créer un nouveau DataTable qui correspond au schéma, puis le passer en tant que paramètre.

Le code de prepareatatable() ressemblerait probablement à :

var dt = new DataTable();
dt.Columns.Add("Id", typeof(int));
return dt;

Après quoi, vous devrez ajouter vos locationIds :

foreach(var id in locationIds)
{
    var row = dt.NewRow();
    row["Id"] = id;
    dt.Rows.Add(row);
}

Affectez ensuite dt en paramètre :

var param = cmd.Parameters.AddWithValue("@LocationIDs", dt);
param.SqlDbType = SqlDbType.Structured;
param.TypeName = "dbo.IdentityType";