2012-02-28 5 views
15

У меня есть следующие строки кода:SQLCommand Параметры Размер спутанность

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

Но, я немного запутался об использовании size. Является ли это заявлением, что его 4 байта? Или длина 4, поэтому 1234 приемлема, но 12345 слишком большой?

ответ

23

Для типов с исправлениями размер вы должны опустить этот аргумент, просто:

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

Аргумент размер имеет значение только для параметров с типом, который может иметь переменный размер, как varchar, nvarchar и т.д.

+2

+1, я должен был написать то же самое –

4

Размер 4 байта для int.

См. DbParameter class on msd n для получения дополнительной информации. Это значение, поскольку SqlCeParameter реализует DbParameter

Следующий раздел относится:

Размер свойство используется для бинарных и строковых типов.

Для типов данных nonstring и строковых данных ANSI свойство Size относится к числу байтов. Для строковых данных Unicode размер ссылается на на количество символов. Счетчик для строк не содержит завершающего символа .

Для данных с переменной длиной, размер описывает максимальное количество данных для передачи на сервер . Например, для строки Unicode значение может использоваться для ограничения количества данных, отправленных на сервер , до первых 100 символов.

См. Это https://gist.github.com/1932766 для реализации свойства Размер.

2

Это 4 байта, 32 бит. Это 32-битное целое число.

+0

Чтобы освежить этот материал http://www.beesky.com/newsite/bit_byte.htm –

2

если вы собираетесь на int, чем я думаю, что это неважно, какой размер.

так вы код будет

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

на для VARCHAR, navarchar где размер maater вам нужно speicify размер в вас .net код, т.е. в параметре

Смежные вопросы