0

在MSDN中规定了包括 Size 参数的SqlCommand.Parameters.Add方法重载:

“当您添加可变长度数据类型(如 varchar 或二进制)的参数时,此重载很有用。”

并给出了示例:

public void AddSqlParameter(SqlCommand command) 
{
    SqlParameter param = new SqlParameter(
        "@Description", SqlDbType.NVarChar, 16);
    param.Value = "Beverages";
    command.Parameters.Add(param);
}

我有一些困难要更准确地理解:

  1. Size 参数中应该提供什么?DB结构中的列长度或当前参数值的长度或它们的Min()?或者是其他东西?

  2. 它是否仅适用于 "varcharbinary" 或其他文字 Sql Server 类型,例如char,nvarchar等...?

或者

已编辑:我的具体案例: 如果在 DB 列name中,varchar(10)但我在 C#String lName中有长度为 15 的内容,我必须在 Parameters.Add: 10 or lName.Lengthor ...?

4

1 回答 1

1

如果未在 size 参数中显式设置,则从 dbType 参数的值推断 Size。

SqlParameter 构造函数(字符串、SqlDbType、Int32)

Size 属性用于二进制和字符串类型。对于 SqlType.String 类型的参数,Size 表示 Unicode 字符的长度。对于 SqlType.Xml 类型的参数,忽略 Size。

SqlParameter.Size 属性

于 2013-03-01T11:13:16.437 回答