Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

sql_variant कॉलम के लिए तालिका-मूल्यवान पैरामीटर में 'ऑब्जेक्ट' प्रकार का पैरामीटर पास करना

यह पोस्ट अब कई साल पुरानी है लेकिन मैंने एक ही समस्या को मारा और समाधान किया। यदि आप डेटाटेबल का उपयोग नहीं करते हैं बल्कि इसके बजाय SqlDataRecord के संग्रह को पॉप्युलेट करते हैं तो आप SqlDataRecord के डेटाटाइप को 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डेटाग्रिड व्यू से डेटाबेस में डेटा डालना

  2. SYNONYM का उपयोग क्या है?

  3. SMO लाइब्रेरी का उपयोग करके C# में एप्लिकेशन से .sql फ़ाइल चलाएँ

  4. एक लंबी अल्पविराम स्ट्रिंग को बहु स्तंभ नई तालिका में विभाजित करें

  5. SQL सर्वर में वर्षों से स्ट्रिंग एकत्रीकरण