tôi nhận được ngoại lệ này khi tôi cố gắng để chèn một DBNull.Value thành một nullable varbinary (max) lĩnh vực:chuyển đổi ngầm từ kiểu dữ liệu nvarchar sang varbinary (max) không được phép
Implicit conversion from data type nvarchar to varbinary(max) is not allowed. Use the CONVERT function to run this query.
Thats của tôi mã:
insertCMD.Parameters.AddWithValue("@ErrorScreenshot", SqlDbType.VarBinary).Value = DBNull.Value;
Tôi biết có tồn tại các câu hỏi trùng lặp trên SO, nhưng tôi KHÔNG sử dụng bất kỳ Chuỗi nào giống như các chuỗi khác.
Tôi làm gì sai?
UPDATE:
using (var insertCMD = new SqlCommand("INSERT INTO TestplanTeststep (TeststepId,TestplanId,CreatedAt,ErrorText,ErrorScreenshot,TestState) VALUES (@TeststepId, @TestplanId,@CreatedAt,@ErrorText,@ErrorScreenshot,@TestState)", con))
{
var p1 = insertCMD.Parameters.Add("@TeststepId", SqlDbType.Int);
var p2 = insertCMD.Parameters.Add("@CreatedAt", SqlDbType.DateTime);
insertCMD.Parameters.AddWithValue("@TestplanId", testplan.Id);
insertCMD.Parameters.AddWithValue("@ErrorText", (object) DBNull.Value);
insertCMD.Parameters.AddWithValue("@ErrorScreenshot", (object) DBNull.Value);
insertCMD.Parameters.AddWithValue("@TestState", (int)Teststep.TeststepTestState.Untested);
foreach (Teststep step in teststeps)
{
p1.Value = step.Id;
p2.Value = step.CreatedAt;
insertCMD.ExecuteNonQuery();
}
}
Không giống như dòng mã phù hợp. UniqueIdentifier không được đề cập ở tất cả. Có thể cung cấp định nghĩa quy trình được lưu trữ không? – Sean
Xin lỗi tôi đã sao chép ngoại lệ sai. Bây giờ nó được sửa chữa. – Pascal
Tham số thứ hai của 'AddWithValue' là giá trị. Không phải kiểu dữ liệu. –