Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Truyền tham số kiểu 'đối tượng' trong tham số có giá trị bảng cho cột sql_variant

Bài viết này đã nhiều năm tuổi nhưng tôi gặp phải vấn đề tương tự và có một giải pháp. Nếu bạn không sử dụng DataTable mà điền vào một tập hợp SqlDataRecord thì bạn có thể đặt kiểu dữ liệu của SqlDataRecord thành 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. Làm thế nào để cấp quyền truy cập vào các thủ tục thư cơ sở dữ liệu SQL Server cho một Đăng nhập trong một cơ sở dữ liệu khác?

  2. Chuyển đổi varchar thành uniqueidentifier trong SQL Server

  3. Định cấu hình SQL-SERVER mà không chạy dịch vụ

  4. TSQL-2008 SUM (X) HẾT (PHẦN ... ĐẶT HÀNG CỦA KHÁCH HÀNG)

  5. Tính Hash hoặc Checksum cho một bảng trong SQL Server