2009-02-27 11 views
17

SqlDbType ánh xạ tới varChar (max) là gì? SqlDbType.VarChar nói rằng nó được giới hạn ở 8K, mặc dù đó có thể là một lỗi tài liệu.SqlDbType ánh xạ tới varChar (max) là gì?

+0

Hiện tại tôi thấy 3 câu trả lời khác nhau, bạn đã sử dụng giải pháp nào? – edosoft

+0

Cuối cùng tôi thấy rằng không rõ ràng thiết lập SqlDbType là cách tốt nhất để đi. Nó ít bị lỗi hơn và không cần phải thay đổi khi proc được lưu trữ bị thay đổi. –

+2

Nhưng bây giờ mã của bạn đang xây dựng một kế hoạch thực hiện mỗi lần một chuỗi chiều dài khác nhau được truyền cho SP. Nó không phải là tối ưu. MSDN hiển thị để sử dụng -1, như eglasius tiểu bang dưới đây. – HardCode

Trả lời

24

Thực ra bạn có thể sử dụng nó với VarChar. Nếu nó là một tham số bạn có thể xây dựng nó với: SqlParameter mới ("@ myparam", SqlDbType.NVarChar, -1)

Xem: http://msdn.microsoft.com/en-us/library/bb399384.aspx

+1

Tôi có phải vượt qua kích thước -1 hoặc tôi có thể để trống không? –

+1

câu hỏi liên quan http://stackoverflow.com/questions/973260/what-size-do-you-use-for-varcharmax-in-your-parameter-declaration – TheEmirOfGroofunkistan

-1

sử dụng VARCHAR, và thiết lập kích thước 2147483647 (2gb-1)

-1

OK ... Cuối cùng đã tìm ra điều này ... nếu bạn nhận được thông báo lỗi: " Chuỗi [0]: Thuộc tính Kích thước có kích thước không hợp lệ là 0". Bạn chỉ phải thiết lập các thông số kích thước của đầu ra SQL Parameter như vậy:

Dim parameter As SqlParameter = New SqlParameter("@FinalImportCount", SqlDbType.NVarChar) 
parameter.Direction = ParameterDirection.Output 
parameter.Size = 4000 
cmd.Parameters.Add(parameter) 

Hy vọng điều này sẽ giúp người - đã cố gắng để con số này ra trong 2 giờ .... grrrrr.