字符串或二进制数据将被截断。该语句已终止。
System.Data.SqlClient.SqlException(0x80131904):字符串或二进制数据将被截断
答案 0 :(得分:3)
当C#(模型)尝试为SQL SERVER数据库表中大小定义较小的列保存数据记录时,抛出此异常,其中值传递给此列的字符串长度更大。
要修复此错误,您只需使用SQL Server脚本更改SQL SERVER数据库中的表列。
只增加表格中列的大小。无需在PROD / TEST环境中重新部署应用程序。
答案 1 :(得分:1)
请参阅下面的示例。
CREATE TABLE MyTable(Num INT, Column1 VARCHAR(3))
INSERT INTO MyTable VALUES (1, 'test')
查看column1,其大小为3,但给定值的长度为4,因此您将收到错误。
修复错误:
你应该传递小于或等于它大小的字符串值,即,如下所示的3个字符。
INSERT INTO MyTable VALUES (1, 'tes')
如果要抑制此错误
您可以使用以下ansi_warnings参数设置关闭
SET ansi_warnings OFF
如果我们将ansi_warnings用作OFF,那么错误将被抑制,并且将插入列中的任何内容,其余内容将被截断。
INSERT INTO MyTable VALUES (1, 'test')
字符串' tes'将存储在您的表中,它不会返回任何错误。