C# 从DataTable大容量插入到DB2时出错

C# 从DataTable大容量插入到DB2时出错,c#,.net,transactions,db2,C#,.net,Transactions,Db2,在.net项目中,我使用Db2BulkCopy类的WriteToServer()方法将数据表中的一些数据插入表(db2)。我遇到了一个非常普遍的错误,我不知道如何处理: 当前事务已回滚,因为出现错误\“-952” {“ERROR[40506][IBM][DB2/LINUXX8664]SQL1476N由于错误\“-952\”,当前事务已回滚 我试图在数据库表中手动添加一条记录,一切正常。 如果我们以前遇到过这种情况,请提供一些提示。谢谢 代码为-952的SQL1476N不是泛型的,它是非常具体的,

在.net项目中,我使用Db2BulkCopy类的WriteToServer()方法将数据表中的一些数据插入表(db2)。我遇到了一个非常普遍的错误,我不知道如何处理:

当前事务已回滚,因为出现错误\“-952” {“ERROR[40506][IBM][DB2/LINUXX8664]SQL1476N由于错误\“-952\”,当前事务已回滚

我试图在数据库表中手动添加一条记录,一切正常。
如果我们以前遇到过这种情况,请提供一些提示。谢谢

代码为-952的SQL1476N不是泛型的,它是非常具体的,您必须查找sqlcode-952(又名.SQL0952N)的含义,然后您会找到许多匹配项

您的Db2客户机正在超时,因为.Net默认值可能是等待30秒,等待任何Db2 commnand完成。您需要告诉.Net等待更长的时间才能完成批量复制。你也可以告诉.Net永远等待

改变默认查询超时的机制取决于Db2客户机版本和/或编码技术。您需要将QueryTimeout=0属性添加到Db2客户机或代码中的类实例中


旧版本的Db2客户机有一个db2cli.ini,您可以在其中指定此属性。当前版本有一个db2dsdriver.cfg文件,您可以在其中指定此属性。您还可以在数据库连接字符串上指定属性,或者在运行BulkCopy之前,通过在代码中显式设置相关属性来指定属性。

带有代码-952的SQL1476N不是泛型的,它非常具体,您必须查找sqlcode-952(又名.SQL0952N)的含义,然后你会找到很多热门歌曲

您的Db2客户机正在超时,因为.Net默认值可能是等待30秒,等待任何Db2 commnand完成。您需要告诉.Net等待更长的时间才能完成批量复制。你也可以告诉.Net永远等待

改变默认查询超时的机制取决于Db2客户机版本和/或编码技术。您需要将QueryTimeout=0属性添加到Db2客户机或代码中的类实例中


旧版本的Db2客户机有一个db2cli.ini,您可以在其中指定此属性。当前版本有一个db2dsdriver.cfg文件,您可以在其中指定此属性。您还可以在数据库连接字符串上指定属性,或者在运行BulkCopy之前在代码中显式设置相关属性。我更改了超时时间,问题再次出现。这似乎是由外键不在相关表中这一事实造成的。
谢谢你所做的一切

我更改了超时时间,问题再次出现。这似乎是由外键不在相关表中这一事实造成的。 谢谢你所做的一切