我一直在网上寻找解决我问题的日子,我找不到任何有关我为何会遇到这个问题的提示。
例外是: System.ArgumentException:参数无效
我正在使用 IBM.Data.Informix.dll 版本 9.0.0.2 ,连接字符串已通过多种排列,但基于IBM和在线的大多数示例这就是我所拥有的:
Database=testdb; Host=10.0.0.123; Server=test; Service=3013; User Id=testuser; Password=test123; Protocol=onsoctcp;
我尝试将Service设置为服务名称,我已将其删除,甚至尝试将服务器设置为IP而不是主机。无论我做什么,它都会不断提出一个无用的异常,这对调试没有任何帮助。
我在实例化时使用IfxConnection类:
using System.Data;
using IBM.Data.Informix;
namespace InformixTest
{
public class InformixConnectionFactory : IConnectionFactory<IDbConnection>
{
private string connectionString;
public InformixConnectionFactory(string connectionString)
{
this.connectionString = connectionString;
}
public IDbConnection GetConnection()
{
return new IfxConnection(connectionString);
}
}
}
每次进入新的IfxConnection(connectionString)时抛出异常,都会通过web.config ConnectionStrings部分注入连接字符串。我也瞄准.net 4,这是一个问题。
我正在使用 v9.5fp4_nt32_dsdriver_EN.exe 安装程序来安装驱动程序,一旦有人遇到类似问题,我确实读过某个地方,因此他们安装了Informix Client SDK,修复了他们的问题。我也做了同样但没有这样的运气。
我使用以下网站作为我的连接字符串外观的参考:
http://www.ibm.com/developerworks/data/library/techarticle/dm-0510durity/ http://stackoverflow.com/questions/611345/connection-string-for-informix-for-net
任何帮助都会很棒!
答案 0 :(得分:1)
你的连接字符串在我的机器上运行。我在IfxConnection上遇到了很多问题,因为我还先安装了驱动程序。然后我unistalled驱动程序和客户端sdk,重新启动Windows并再次安装客户端sdk。以防我再次重启Windows。这样做对我来说。
此外,我认为您应该切换(如果可能)到Informix的IBM Data Server .NET Provider,因为旧的informix驱动程序将不再被增强。在这里查看比较:
http://www.ibm.com/developerworks/data/library/techarticle/dm-1007dsnetids/index.html
您会发现“Informix服务器支持”和“支持.NET framework 3.0,3.5”功能非常重要,旧驱动程序不支持它。另外,文章没有提到旧驱动程序不支持数据库元数据检索。