【问题标题】:Trying to understand SqlParameterCollection.Add() size parameter for strings试图了解字符串的 SqlParameterCollection.Add() 大小参数
【发布时间】:2015-11-01 23:42:11
【问题描述】:

我正在尝试理解SqlParameterCollection.Add() 方法中的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会抛出异常?

【问题讨论】:

  • 我想知道为什么您对答案投了反对票,而答案会指导您更正文档,并且您可以看到 “然后该值将被截断以匹配大小。”
  • @RezaAghaei:我标记答案的人没有给我一个冗长的 MS 文档的链接,而是用一种简单的语言解释了它。
  • 该链接将引导您了解Size 属性,特别是当您说“Int32 的大小。没有真正帮助”时。意味着您需要更多描述,而不仅仅是底线答案:)
  • 我认为对这样的答案投反对票可能会误导用户,您可以发表评论而不是对这样的正确答案投反对票。

标签: c# asp.net sql-server tsql


【解决方案1】:

您不会得到任何异常,并且“abcde”将被插入到您的表格中

【讨论】:

  • 感谢您的解释。
【解决方案2】:

您可以找到SqlParameter.Size 属性的完整文档。

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

【讨论】:

  • 我想知道为什么您对答案投了反对票,而答案会指导您更正文档,并且您可以看到 “然后该值将被截断以匹配大小。”
猜你喜欢
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
  • 2021-08-05
  • 1970-01-01
  • 2020-12-04
  • 1970-01-01
  • 1970-01-01
  • 2019-06-15
相关资源
最近更新 更多