【问题标题】:SQL Server (0x80131904): String or binary data would be truncated [duplicate]SQL Server (0x80131904):字符串或二进制数据将被截断 [重复]
【发布时间】:2014-05-10 14:57:00
【问题描述】:

我不断收到此错误

ErrorSystem.Data.SqlClient.SqlException (0x80131904):字符串或二进制数据将被截断。该语句已终止。在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) 在 System.Data.SqlClient.SqlConnection.OnError(SqlException 异常,布尔 breakConnection,Action1 wrapCloseInAction) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction) 在 System.Data.SqlClient System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) 在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) 在 System.Data.SqlClient。 System.Data.SqlClient.SqlCommand.RunExecuteReader 上的 SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior,RunBehavior runBehavior,Boolean returnStream,Boolean async,Int32 超时,Task& 任务,Boolean asyncWrite,SqlDataReader ds)(CommandBehavior cmdBehavior,RunBehavior runBehavior,Boolean returnStream,String 方法, 任务完成源1 completion, Int32 timeout, Task& task, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource1在 h:\WebSite1\workOrder.aspx.cs:line 中 workOrder.btnSubmit_Click(Object sender, EventArgs e) 中 System.Data.SqlClient.SqlCommand.ExecuteNonQuery() 的完成,字符串 methodName,布尔 sendToPipe,Int32 超时,布尔 asyncWrite) 60 ClientConnectionId:2b010913-ba9f-4423-b6e1-2e9a038431ce

并且谷歌搜索告诉我字符串输入太长而无法被数据库处理,但是我的所有字段都足够大,我无法弄清楚,

这是我的代码:

  <!--Removed-->

即使我将每个可为空的字段留空并且只为其余项目输入 1 个字符,我也会收到此错误

编辑: 表:

<!--Removed-->

编辑:

asp 代码:

<!--Removed-->

编辑: 删除所有安全代码,

【问题讨论】:

  • 也许您正在将 unicode 字符串传递给非 unicode 表字段?
  • 显示 sql 表架构(列和列类型定义),并将查询替换为您尝试插入的字符串文字(插入语句中 Values() 括号内的值)。
  • 我正在将它导入到 NCHAR 数据类型字段中,这会导致问题吗?
  • 你在sql server management studio中用实际执行计划尝试过插入查询吗?曾经触发过同样的事情。
  • @charles-bretana 编辑帖子以显示表格

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


【解决方案1】:

当您的列大小小于文本大小时,会发生此错误。

例如:在数据库中,您有列“name varchar(10)”,并且数据的大小大于 10。在这种情况下发生错误。

EX:如果我在名称字段中输入“Siddharth Shukla”,则会出错。所以我必须将列大小从 10 更改为 20。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多