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

Sender parameter af typen 'objekt' i tabelværdiparameter for sql_variant-kolonnen

Dette indlæg er mange år gammelt nu, men jeg ramte det samme problem og har en løsning. Hvis du ikke bruger en datatabel, men i stedet udfylder en samling af SqlDataRecord, kan du indstille datatypen for SqlDataRecord til 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. Hvordan matcher jeg to værdier fra 1 kolonne i MYSQL

  2. Fejlfinding af CPU-ydeevne på VMware

  3. ODP.NET Hvordan overfører man række af strenge til en Oracle Stored-procedure?

  4. SQL Server 2008 Full Text Search (FTS) versus Lucene.NET