C# SqlCommand参数大小混乱
我有以下代码行:C# SqlCommand参数大小混乱,c#,sqlparameter,C#,Sqlparameter,我有以下代码行: sqlcommand.Parameters.Add("@LinkID", SqlDbType.Int, 4).Value = linkID; 但是,我对size的用法有点困惑。这是说它的大小是4字节吗?或者长度为4,因此可以接受1234,但12345太大?int的大小为4字节 有关更多信息,请参阅n。它之所以相关是因为SqlCeParameter实现了DbParameter 以下章节是相关的: Size属性用于二进制和字符串类型 对于非字符串数据类型和ANSI字符串数据,Si
sqlcommand.Parameters.Add("@LinkID", SqlDbType.Int, 4).Value = linkID;
但是,我对
size
的用法有点困惑。这是说它的大小是4字节吗?或者长度为4,因此可以接受1234
,但12345
太大?int的大小为4字节
有关更多信息,请参阅n。它之所以相关是因为SqlCeParameter
实现了DbParameter
以下章节是相关的:
Size属性用于二进制和字符串类型
对于非字符串数据类型和ANSI字符串数据,Size属性
指字节数。对于Unicode字符串数据,大小是指
字符数。字符串的计数不包括
终止字符
对于可变长度数据类型,“大小”描述了
要传输到服务器的数据。例如,对于Unicode字符串
值,大小可用于限制发送到服务器的数据量
服务器设置为前100个字符
有关Size属性的实现,请参见此部分。对于具有固定大小的类型,您应该省略此参数,只需:
sqlcommand.Parameters.Add("@LinkID", SqlDbType.Int).Value = linkID;
size参数仅适用于具有可变大小类型的参数,如
varchar
,nvarchar
等。它是4字节,32位。它是一个32位整数。如果你想要int,我认为无论它的大小都是
因此,您的代码将是
sqlcommand.Parameters.Add("@LinkID", SqlDbType.Int).Value = linkID;
对于varchar、NAVARCAR,如果大小为maater,则需要在.net代码中指定大小,即在参数中,因此。。。您应该传递LinkID的大小还是传递列的最大大小?