【发布时间】: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,Action
1 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