23

我有以下代码行:

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

但是,我对size. 这是说它的大小为 4 个字节吗?还是长度为 41234可以接受但12345太大了?

4

4 回答 4

31

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

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

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

于 2012-02-28T14:05:11.753 回答
8

int 的大小为 4 个字节。

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

以下部分是相关的:

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

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

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

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

于 2012-02-28T14:04:44.470 回答
2

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

于 2012-02-28T14:05:27.747 回答
2

如果您要使用 int,那么我认为无论它的大小如何。

所以你的代码将是

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

on for varchar,navarchar 其中大小是maater,您需要在.net代码中指定大小,即在参数中

于 2012-02-28T14:05:34.160 回答