sql >> Database >  >> RDS >> Sqlserver

Parameter van type 'object' doorgeven in parameter met tabelwaarde voor kolom sql_variant

Dit bericht is al vele jaren oud, maar ik heb hetzelfde probleem en heb een oplossing. Als u geen DataTable gebruikt, maar in plaats daarvan een verzameling SqlDataRecord vult, kunt u het datatype van het SqlDataRecord instellen op SqlDbType.Variant.

 List<SqlDataRecord> dataTable = new List<SqlDataRecord>();
var dr = new SqlDataRecord(
                            new SqlMetaData("Id", SqlDbType.Int),
                            new SqlMetaData("Value", SqlDbType.Variant));

dr.SetInt32(0, id);
dr.SetValue(1, myObject);

dataTable.Add(dr);

[...]

SqlCommand sqlCommand = new SqlCommand("dbo.MyProc");
var structuredParam = sqlCommand.Parameters.Add("myTableParam", SqlDbType.Structured);
structuredParam.Value = dataTable;


  1. Uw ultieme gids voor SQL Join:CROSS JOIN - Deel 3

  2. Hoe voer je een Java-toepassing uit met MySQL DB op een computer zonder dat MySQL is geïnstalleerd?

  3. vind de dichtstbijzijnde locatie in ms-sql

  4. Kan een nieuw tot stand gebrachte verbinding niet valideren