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

ADO.NET classico - Come passare l'UDT alla stored procedure?

Questo articolo potrebbe essere un po' più di aiuto.

In sostanza, creerai una nuova DataTable che corrisponde allo schema, quindi la passerai come parametro.

Il codice di prepareatatable() probabilmente assomiglierebbe a:

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

Dopodiché, dovresti aggiungere i tuoi locationIds:

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

Quindi assegnare dt come parametro:

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