SqlCommand参数大小混乱

我有以下代码行:

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

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

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

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

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

int的大小为4个字节。

有关详细信息,请参阅msd n 上的DbParameter类 。 它是相关的,因为SqlCeParameter实现了DbParameter

以下部分是相关的:

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

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

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

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

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

如果你想要的话比我想的那样无论它的大小是多少。

所以你的代码就是

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

对于varchar,navarchar,其中大小是maater,你需要在你的.net代码中指定大小,即在参数中