首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我执行这个简单的insert查询时,为什么要得到这个异常?

当我执行这个简单的insert查询时,为什么要得到这个异常?
EN

Stack Overflow用户
提问于 2014-03-25 16:29:02
回答 2查看 87关注 0票数 1

执行insert查询的代码有问题(问题是当它试图执行查询时,会抛出异常):

代码语言:javascript
复制
_strSQL = "INSERT INTO Cpe ( DateAdded,  [Cpe] ";
strSQLParametri = " VALUES ( GETDATE(), @CPE ";
addParameter(command, "@CPE ", cpe.Cpe);


// [SourceId] insertion on the DB:
if (cpe.SourceId != null)
{
                _strSQL += ",[SourceId] ";
                strSQLParametri += ", @SOURCEID ";
                addParameter(command, "@SOURCEID ", cpe.SourceId);
}

// [vendor_id] insertion on the DB:
if (cpe.VendorId != null)
{
                _strSQL += ",[vendor_id] ";
                strSQLParametri += ", @VENDORID ";
                addParameter(command, "@VENDORID ", cpe.VendorId);
}

// [Title] insertion on the DB:
if (cpe.Title != null)
{
                _strSQL += ",[Title] ";
                strSQLParametri += ", @TITLE ";
                addParameter(command, "@TITLE ", cpe.Title);
}

// [part] insertion on the DB:
if (cpe.Part != null)
{
                _strSQL += ",[part] ";
                strSQLParametri += ", @PART ";
                addParameter(command, "@PART ", cpe.Part.ToString());
}

// [product_id] insertion on the DB:
if (cpe.ProductId != null)
{
                _strSQL += ",[product_id] ";
                strSQLParametri += ", @PRODUCTID";
                addParameter(command, "@PRODUCTID ", cpe.ProductId);
}

// [version] insertion on the DB:
if (cpe.Version != null)
{
                _strSQL += ",[version] ";
                strSQLParametri += ", @VERSION";
                addParameter(command, "@VERSION ", cpe.Version);
}

// [revision] insertion on the DB:
if (cpe.Revision != null)
{
               _strSQL += ",[revision] ";
                strSQLParametri += ", @REVISION";
                addParameter(command, "@REVISION ", cpe.Revision);
}

// [edition] insertion on the DB:
if (cpe.Edition != null)
{
                _strSQL += ",[edition] ";
                strSQLParametri += ", @EDITION";
                addParameter(command, "@EDITION ", cpe.Edition);
}

.... and so on ......

query = _strSQL + " ) " + strSQLParametri + " );";
command.CommandText = query;
_executeNoQuery(command);

newId = _getIdentity();
//Debug.WriteLine("Id: " + newId);
#endregion

这是获得的查询,请参见调试器什么(前面的字段不是所有的,因为有人为null,因此跳过了这些字段):

代码语言:javascript
复制
INSERT INTO Cpe (DateAdded, [Cpe], [SourceId], [vendor_id], [Title], [part], [product_id], [version])  
VALUES (GETDATE(), @CPE, @SOURCEID, @VENDORID, @TITLE, @PART, @PRODUCTID, @VERSION);

这是在执行上一次查询时获得的异常:

ExecuteNonQuery终端机错误。\n在Cpe ( DateAdded、Cpe、SourceId、vendor_id、Title、part、product_id、version )中的值( GETDATE()、@CPE、@SOURCEID、@VENDORID、@TITLE、@PART、@PRODUCTID、@VERSION ); 字符串或二进制数据将被截断。

有什么问题吗?你知道我该怎么解决吗?

EN

回答 2

Stack Overflow用户

发布于 2014-03-25 16:33:52

错误消息String or binary data would be truncated.的这一部分建议您尝试将数据插入到一个太小的字段中。

检查插入的任何文本数据的长度,然后检查要将其插入的字段的大小,确保其符合。

票数 2
EN

Stack Overflow用户

发布于 2014-03-25 16:33:51

检查要传入的每个字符串值的长度。其中一个几乎肯定比插入数据的列的长度长。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22640739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档