SqlCommand参数大小混乱

时间:2012-02-28 14:02:46

标签: c# sqlparameters

我有以下代码行:

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

但是,我对size的使用感到有些困惑。这是说它的4个字节大小?或者长度为4,1234是可以接受的,但12345太大了?

4 个答案:

答案 0 :(得分:27)

对于具有修正大小的类型,您应该省略此参数,只需:

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

size参数仅与类型可能具有varcharnvarchar等可变大小的参数相关。

答案 1 :(得分:6)

int的大小为4个字节。

有关详细信息,请参阅DbParameter class on msd n。这是相关的,因为SqlCeParameter实现了DbParameter

以下部分是相关的:

  

Size属性用于二进制和字符串类型。

     

对于非字符串数据类型和ANSI字符串数据,请使用Size属性   指的是字节数。对于Unicode字符串数据,Size指的是   字符数。字符串的计数不包括   终止性格。

     

对于可变长度数据类型,Size描述最大数量   要传输到服务器的数据。例如,对于Unicode字符串   value,Size可用于限制发送到的数据量   服务器到前一百个字符。

有关Size属性的实现,请参阅此https://gist.github.com/1932766

答案 2 :(得分:2)

这是4个字节,32位。它是一个32位整数。

答案 3 :(得分:2)

如果你要使用int而不是我认为无论它的大小是多少。

所以你的代码将是

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

on for varchar,navarchar其中大小为maater你需要在你的.net代码中表示大小,即参数