问:
我的问题包括两部分:
1-我想使用以下类IfxBulkCopy
插入大量数据,但 dll IBM.Data.Informix 2.81.0.0
中不存在此类如何解决此问题?
注意:该类存在于IBM.Data.Informix 9.0.0.2
中!但我无法使用此版本,因为我们使用旧版informix
。
当我使用新版本时,我得到以下异常:
Invalid argument
StackTrace = " at IBM.Data.Informix.IfxConnection.ReplaceConnectionStringParms(String szValue, IfxConnSettings& connSettings)\r\n at IBM.Data.Informix.IfxConnection.set_ConnectionString(String value)\r\n at Common.DBConnectionForInformix..ctor(String ConnectionStr...
public static void InsertAsBulk(DataTable dt)
{
using (IfxConnection cn = new IfxConnection(ConfigurationManager.ConnectionStrings["aa"].ToString()))
{
cn.Open();
using (IfxBulkCopy copy = new IfxBulkCopy(cn))
{
copy.ColumnMappings.Add(1, 2);
copy.ColumnMappings.Add(2, 3);
copy.ColumnMappings.Add(3, 4);
copy.ColumnMappings.Add(4, 5);
copy.ColumnMappings.Add(5, 6);
copy.ColumnMappings.Add(6, 7);
copy.DestinationTableName = "schday";
copy.WriteToServer(dt);
}
}
}
2- IfxBulkCopy
是否在插入操作期间使用事务概念,或者也可能导致不一致的数据。
答案 0 :(得分:2)
你的连接字符串没问题。您是否安装了多个版本的驱动程序?我在同一台机器上安装OAT,Informix驱动程序和Informix Client SDK时遇到了同样的问题
这解决了我的问题:
1.卸载驱动程序和客户端sdk + windows restart
2.与数据服务器驱动程序一起安装Client SDK
3.检查系统PATH变量。我添加了
C:\Program Files\IBM Informix Client SDK\bin
C:\Program Files\IBM Informix Client SDK\bin\netf20
到系统路径。我不确定是什么问题,也许只是改变PATH变量(没有unistallation)可以修复它。