【问题标题】:string or binary data would be truncated. when large string is inserted in a field字符串或二进制数据将被截断。当在字段中插入大字符串时
【发布时间】:2019-05-02 10:03:11
【问题描述】:

在我的asp.net mvc5网站模型中有字段名

   [Display(Name = "Detail (A-Z)")]
            [StringLength(int.MaxValue)]
            [AllowHtml]
            public string Description { get; set; }

我想为这个字段设置最大的字符串大小。我用StringLength(int.Maxvalue) 当我输入大字符串(不是很大)时,它会给出错误。在小字符串上它工作正常。 我更改了删除的 stringlength 数据注释,但仍然给出相同的错误。我认为 stringlangth 应该允许最大字符。

【问题讨论】:

  • 请检查描述列长度数据库。
  • 请任何人帮助我,以便我可以在此字段中输入整个 html 页面(或 MS word 格式的页面)?
  • @FiazAhmed 检查下面发布的答案。
  • 移除[StringLength(int.MaxValue)]属性
  • @FiazAhmed 您是否使用代码优先方法?如果是,请执行迁移。如果您使用的是数据库优先方法,只需更新此属性的数据库列长度即可。

标签: asp.net-mvc entity-framework-6


【解决方案1】:

这不是服务器端代码的问题。问题在于数据库的字段长度。您发送的字符串比 DB 列可以容纳的更长。因此,对于较长的字符串会引发错误。

执行以下操作: [StringLength(X)] 这里的 x 是 DB 中列的长度。

如果您希望输入为 html 输入时所需的最大长度,请从模型中删除 StringLength 属性。这不会限制输入长度。然后将 DB 列更改为Varchar (Max)

【讨论】:

  • 先生,感谢您的帮助。是的,我想输入最大尺寸输入。我试图从模型中删除 stringlength 属性,但仍然出现错误。请解决任何问题。
  • 仅从模型中删除长度是行不通的。如上所述,您需要更改数据库中列的大小。数据库中将存储输入(描述)的列的类型/长度是多少?
  • 感谢 Rahatur 提交的描述是 nvarchar(255) 现在我改为 nvarchar(MAX) 我还需要从模型中删除字符串长度注释吗?
  • @FiazAhmed 是的,您可以删除字符串长度。如果答案对您有用,希望您不介意将答案标记为已接受并投票?
猜你喜欢
  • 2016-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-04
相关资源
最近更新 更多