SqlCommand参数大小混乱
本文关键字:混乱 参数 SqlCommand | 更新日期: 2023-09-27 18:25:58
我有以下代码行:
sqlcommand.Parameters.Add("@LinkID", SqlDbType.Int, 4).Value = linkID;
但是,我对size
的使用有点困惑。这是说它的大小是4个字节吗?或者长度为4,所以1234
是可以接受的,但12345
太大了?
对于具有修复大小的类型,您应该省略此参数,简单地说:
sqlcommand.Parameters.Add("@LinkID", SqlDbType.Int).Value = linkID;
size参数仅与类型可以具有可变大小的参数相关,如varchar
、nvarchar
等。
内部的大小为4个字节
有关详细信息,请参阅msdn上的DbParameter类。这是相关的,因为SqlCeParameter
实现了DbParameter
以下部分相关:
Size属性用于二进制和字符串类型。
对于非字符串数据类型和ANSI字符串数据,Size属性指字节数。对于Unicode字符串数据,Size指字符数。字符串的计数不包括终止字符。
对于可变长度的数据类型,Size描述了要传输到服务器的数据。例如,对于Unicode字符串值,Size可用于限制发送到服务器的前一百个字符。
看看这个https://gist.github.com/1932766用于实现Size属性。
它是4个字节,32位。它是一个32位整数。
如果你要使用int,那么无论它的大小,我都认为是这样。
所以你的代码将是
sqlcommand.Parameters.Add("@LinkID", SqlDbType.Int).Value = linkID;
对于varchar,navarchar,其中的大小是maater,您需要在.net代码中指定大小,即在参数中