ADO.NET:SqlParameterCollection.Add方法(String,SqlDbType,Int32)。大小参数 - 什么意思?

时间:2013-03-01 11:09:00

标签: c# .net sql-server ado.net

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

  

“当您添加a的参数时,此重载非常有用   可变长度数据类型,例如varchar或binary。“

并举例说明:

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类型,例如charnvarchar等。?

  3. OR

    编辑:我的具体案例: 如果在数据库列namevarchar(10),但我在C#String lName中的长度为15,那么我必须在Parameters.Add:10或lName.Length或...中添加?

1 个答案:

答案 0 :(得分:1)

如果未在size参数中明确设置,则从dbType参数的值推断出大小。

SqlParameter Constructor (String, SqlDbType, Int32)

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

SqlParameter.Size Property