C# 正在尝试理解字符串的SqlParameterCollection.Add()大小参数

C# 正在尝试理解字符串的SqlParameterCollection.Add()大小参数,c#,asp.net,sql-server,tsql,C#,Asp.net,Sql Server,Tsql,我试图理解方法中的size参数。简单阅读: 大小为Int32 真的没用 例如,我的SQL Server表列定义如下: CREATE TABLE myTable ([col1] NVARCHAR(5)) 因此,当我向该表添加新行时: string strSQL = "INSERT INTO myTable ([col1]) " + "VALUES (@strCol1)"; string strValue = "abcdef"; using (SqlCommand cmd = ne

我试图理解方法中的size参数。简单阅读:

大小为Int32

真的没用

例如,我的SQL Server表列定义如下:

CREATE TABLE myTable
  ([col1] NVARCHAR(5))
因此,当我向该表添加新行时:

string strSQL = "INSERT INTO myTable ([col1]) " +
    "VALUES (@strCol1)";

string strValue = "abcdef";

using (SqlCommand cmd = new SqlCommand(strSQL, connection))
{
    cmd.Parameters.Add("@strCol1", SqlDbType.NText, 5).Value =
         strValue;

    cmd.ExecuteNonQuery();
}

我的col1列将添加什么值?或者cmd.Parameters.Add是否会引发异常?

您可以找到属性的完整文档


根据文档,您可以看到该值将被截断以匹配大小,您将不会收到异常。

您将不会收到异常,abcde将插入到您的表中

感谢您的解释。我想知道为什么您否决了答案,而答案会引导您更正文档,然后您可以看到这一点该值将被截断以匹配大小。我想知道为什么在答案引导您更正文档时您否决了答案,您可以看到,然后该值将被截断以匹配大小。@RezaAghaei:我标记答案的人没有给我一个冗长MS文档的链接,而是用简单的语言解释了它。链接引导您需要了解Size属性,特别是当您将Size称为Int32时。真的没用。这意味着你需要更多的描述,而不仅仅是底线答案:我认为否决这样的答案可能会误导用户,你可以留下评论,而不是否决这样一个正确的答案。