Tôi đang cố gắng chuyển một tham số giá trị bảng tới một thủ tục được lưu trữ, nhưng tôi vẫn nhận được một ngoại lệ (xem bên dưới).Cách chuyển thông số giá trị bảng
SqlCommand c = new SqlCommand("getPermittedUsers", myConn) { CommandType = CommandType.StoredProcedure };
c.Parameters.AddWithValue("@intNotifyingUserId", notifyingUserId);
c.Parameters.AddWithValue("@tSelectedPdfIds", sharedPdfs).SqlDbType = SqlDbType.Structured;
SqlDataReader dr = c.ExecuteReader();
Các loại được xác định trên máy chủ như thế này:
CREATE TYPE [dbo].[IdList] AS TABLE(
[Id] [int] NOT NULL
)
Tôi đã thử đi qua sharedPdfs như một List<int>
, và IQueryable<int>
, nhưng tiếp tục nhận được ngoại lệ sau đây:
Object must implement IConvertible.
Bất cứ ai biết tôi đang làm gì sai? Tài liệu ngụ ý rằng tôi có thể chuyển danh sách thành TVP nhưng không đưa ra bất kỳ ví dụ nào.
Cảm ơn bạn.
như thế nào 'getPermittedUsers' tuyên bố? –
Đây là một cảnh quay dài, nhưng bạn đã thử truyền một 'int []'? –
Bạn cần sử dụng 'DataTable'. – ChaosPandion