2012-02-28 33 views
15

Tôi có dòng mã sau đây:SqlCommand Các thông số kích thước nhầm lẫn

sqlcommand.Parameters.Add("@LinkID", SqlDbType.Int, 4).Value = linkID; 

Nhưng, tôi hơi bối rối về việc sử dụng size. Điều này có nói rằng kích thước 4 byte của nó không? Hoặc chiều dài 4 vì vậy 1234 có thể chấp nhận được nhưng 12345 quá lớn?

Trả lời

23

Đối với các loại với sửa kích thước, bạn nên bỏ qua lập luận này, chỉ cần:

sqlcommand.Parameters.Add("@LinkID", SqlDbType.Int).Value = linkID; 

Đối số kích thước là chỉ liên quan đến các thông số với một loại có thể có kích thước biến như varchar, nvarchar, vv

+2

+1, tôi phải viết cùng một số –

4

Kích thước là 4 byte cho một int.

Xem DbParameter class on msd n để biết thêm thông tin. Nó có liên quan vì SqlCeParameter thực hiện DbParameter

Phần sau đây có liên quan:

Kích thước tài sản được sử dụng với nhiều loại nhị phân và chuỗi.

Đối với loại dữ liệu không dây và dữ liệu chuỗi ANSI, thuộc tính Kích thước là số byte. Đối với dữ liệu chuỗi Unicode, Kích thước đề cập đến số số ký tự. Số đếm cho chuỗi không bao gồm ký tự chấm dứt .

Đối với loại dữ liệu có độ dài thay đổi, Kích thước mô tả số lượng tối đa dữ liệu để truyền tới máy chủ. Ví dụ, đối với một chuỗi Unicode Giá trị , Kích thước có thể được sử dụng để giới hạn lượng dữ liệu được gửi đến máy chủ đến 100 ký tự đầu tiên.

Xem này https://gist.github.com/1932766 để thực hiện thuộc tính Kích thước.

2

Nó là 4 byte, 32 bit. Nó là một số nguyên 32 bit.

+0

Để đánh dấu vào loại nội dung này http://www.beesky.com/newsite/bit_byte.htm –

2

nếu bạn đang tìm kiếm int hơn tôi nghĩ rằng therre là không có vấn đề gì kích thước của nó.

vì vậy bạn mã sẽ được

sqlcommand.Parameters.Add("@LinkID", SqlDbType.Int).Value = linkID; 

trên cho varchar, navarchar nơi có kích thước là maater bạn cần phải speicify kích thước trong bạn .net đang tức trong tham số