【发布时间】:2012-02-28 14:02:45
【问题描述】:
我有以下代码行:
sqlcommand.Parameters.Add("@LinkID", SqlDbType.Int, 4).Value = linkID;
但是,我对size 的使用有点困惑。这是说它的大小为 4 个字节吗?还是长度为 4,所以 1234 可以接受,但 12345 太大?
【问题讨论】:
标签: c# sqlparameter
我有以下代码行:
sqlcommand.Parameters.Add("@LinkID", SqlDbType.Int, 4).Value = linkID;
但是,我对size 的使用有点困惑。这是说它的大小为 4 个字节吗?还是长度为 4,所以 1234 可以接受,但 12345 太大?
【问题讨论】:
标签: c# sqlparameter
对于具有固定大小的类型,您应该省略此参数,只需:
sqlcommand.Parameters.Add("@LinkID", SqlDbType.Int).Value = linkID;
size 参数仅与具有可变大小的类型的参数相关,例如varchar、nvarchar 等。
【讨论】:
一个 int 的大小是 4 个字节。
请参阅DbParameter class on msdn 了解更多信息。这是相关的,因为SqlCeParameter 实现了DbParameter
以下部分是相关的:
Size 属性用于二进制和字符串类型。
对于非字符串数据类型和 ANSI 字符串数据,Size 属性 指字节数。对于 Unicode 字符串数据,Size 指 字符数。字符串的计数不包括 终止符。
对于可变长度数据类型,Size 描述了最大数量 数据传输到服务器。例如,对于 Unicode 字符串 value,Size 可用于限制发送到 服务器到前一百个字符。
有关 Size 属性的实现,请参见 https://gist.github.com/1932766。
【讨论】:
它是 4 个字节,32 位。它是一个 32 位整数。
【讨论】:
如果您要使用 int,那么我认为无论它的大小如何。
所以你的代码将是
sqlcommand.Parameters.Add("@LinkID", SqlDbType.Int).Value = linkID;
对于 varchar、navarchar 来说,如果大小很重要,您需要在 .net 代码中指定大小,即在参数中
【讨论】: