在 IBM.Data.Informix 2.81.0.0 中找不到 IfxBulkCopy
Posted
技术标签:
【中文标题】在 IBM.Data.Informix 2.81.0.0 中找不到 IfxBulkCopy【英文标题】:can't find IfxBulkCopy in IBM.Data.Informix 2.81.0.0 【发布时间】:2011-11-17 09:53:58 【问题描述】:问:
我的问题由两部分组成:
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...
我的 .cs:
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
是在插入操作时使用事务概念还是可能导致数据不一致。
【问题讨论】:
你能发布你的连接字符串吗?<add name="aa" connectionString="User Id=xxx;Password=xxx;Host=x;Server=x_tcp;Service=x_tcp;Database=x; Client Locale=ar_ae.1256; Database Locale=ar_ae.8859-6; Protocol=olsoctcp" providerName="IBM.Data.Informix"/>
【参考方案1】:
您的连接字符串很好。您是否安装了多个版本的驱动程序?我在同一台机器上安装 OAT、Informix 驱动程序和 Informix Client SDK 时遇到了同样的问题。 这解决了我的问题: 1.卸载驱动和客户端sdk+windows重启 2. Client SDK 和数据服务器驱动的安装 3.检查系统PATH变量。我加了
C:\Program Files\IBM Informix Client SDK\bin
C:\Program Files\IBM Informix Client SDK\bin\netf20
到系统路径。我不确定是什么问题,也许只是改变 PATH 变量(没有卸载)可以解决它。
【讨论】:
以上是关于在 IBM.Data.Informix 2.81.0.0 中找不到 IfxBulkCopy的主要内容,如果未能解决你的问题,请参考以下文章