2011-12-25 33 views
15

Tôi đang làm việc trên mạng xã hội, một trong các thủ tục của tôi trả về kết quả VARCHAR. Vì vậy, đây là những gì tôi đã viết:Thuộc tính kích thước có kích thước không hợp lệ là 0

SqlParameter job1 = cmd2.Parameters.Add("@job", SqlDbType.VarChar); 
job1.Direction = ParameterDirection.Output; 

Tuy nhiên lỗi này đi lên:

String [1]: Kích thước tài sản có kích thước không hợp lệ của 0.

+1

+1 snap - chính xác cùng một ngoại lệ! – whytheq

Trả lời

32

Bạn cần đến xác định độ dài khi chỉ định tham số varchar:

SqlParameter job1 = cmd2.Parameters.Add("@job", SqlDbType.VarChar, 50); 

Bạn nên sử dụng cùng độ dài như được xác định trong quy trình lưu trữ SQL Server của bạn.

Và btw: nếu thủ tục lưu trữ của bạn cũng không có thời gian xác định (giống như @job VARCHAR OUTPUT) - sau đó bạn đã xác định một chuỗi varchar có độ dài 1 nhân vật ......

+0

Cảm ơn bạn rất nhiều, nó đã làm việc :) – RuMoR

+1

+1 (chỉ tạo câu hỏi dài nhất của tôi cho đến nay và sau đó được chuyển hướng đến QA này!) – whytheq

0

Vâng, phải xác định các chiều dài cho varchar/nvarchar loại dữ liệu như dưới đây.

cmd.Parameters.Add("@Description", SqlDbType.VarChar, 150).Direction = 
    ParameterDirection.Output; 
Các vấn đề liên quan