SQL Server (0x80131904):字符串或二进制数据将被截断 [重复]
Posted
技术标签:
【中文标题】SQL Server (0x80131904):字符串或二进制数据将被截断 [重复]【英文标题】:SQL Server (0x80131904): String or binary data would be truncated [duplicate] 【发布时间】: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, Action
1 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(TaskCompletionSource
1在 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 编辑帖子以显示表格
【参考方案1】:
当您的列大小小于文本大小时,会发生此错误。
例如:在数据库中,您有列“name varchar(10)”,并且数据的大小大于 10。在这种情况下发生错误。
EX:如果我在名称字段中输入“Siddharth Shukla”,则会出错。所以我必须将列大小从 10 更改为 20。
【讨论】:
以上是关于SQL Server (0x80131904):字符串或二进制数据将被截断 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何连接到 Parallels VM 上的 SQL Server
使用 IIS 7 和 SQL SERVER 2008 的问题
将 XML 插入 SQL Server 时如何解决“无法切换编码”错误
System.Data.SqlClient.SqlException(0x80131904):“。”附近的语法不正确
错误:System.Data.SqlClient.SqlException(0x80131904):转换 nvarchar 值时转换失败 [关闭]
SQL Server Native Client / ODBC Driver for SQL Server & DAO 无法将 blob > 8k 插入 varbinary(MAX) 字