【问题标题】:An error occurred while updating the entries - String or binary data would be truncated更新条目时出错 - 字符串或二进制数据将被截断
【发布时间】:2012-08-04 13:28:39
【问题描述】:

我之前使用 Entity Framework 和 Microsoft SQL Server 2008 做过这个项目,没有任何问题。我有一个包含两个简单列的表(IDName)。我将它们绑定到DataGridView,我对InsertUpdateDelete 没有任何问题。

现在我尝试做同样的事情,但这次是两个非常复杂的表,其中包含自动增量列和外键。

当我尝试将插入的信息保存在数据库中时,出现以下异常:

更新条目时出错。查看内部异常 了解详情。

内部异常:字符串或二进制数据将被截断。这 语句已终止。

几乎 10 次停止并重新运行后,项目错误消失了,而我没有进行任何更改。这个错误是为了什么?为什么它没有我改变任何东西就消失了?

如果实体框架想无缘无故地抛出随机异常并在一段时间后停止抛出这些异常,我不能相信它。

【问题讨论】:

  • 当提供的数据长度大于数据库字段中指定的长度时,通常会发生此错误。您确定您没有更改数据库或输入中的任何内容吗?
  • 哦,对了,当数据长度大于数据库中字段的指定长度时会发生此错误。非常感谢。
  • @Habib:重新发布作为答案。 :)
  • @Habib 请写下您的评论作为答案。

标签: c# sql-server entity-framework datagridview ado.net


【解决方案1】:

通常当提供的数据长度大于数据库字段中指定的长度时会发生此错误。

确保数据库字段长度足以容纳输入数据。

【讨论】:

    【解决方案2】:

    我会对此发表评论,但我没有足够的声誉发表评论。 我被困在同样的错误上。看到这个答案后,我做了什么来快速找到我错的地方是我的使用。

    PM> update-database -force -Verbose
    

    详细标签查看为 AutomaticMigrations 生成的 Sql。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2015-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多