从.Net Core调用AS400 DB

时间:2017-04-19 18:24:39

标签: db2 .net-core

我有一个.Net Core WebAPI,我安装了IBM.Data.DB2.Core包。 当我尝试使用连接字符串调用DB2Connection构造函数时,我收到以下错误。

  

无法加载DLL“db2app64.dll”:找不到指定的模块。

这是应该包含在DB2.Core包中的东西吗?有没有更好的方法从.Net Core调用AS400数据库?

我的代码如下所示:

DB2Connection conn = new DB2Connection("Server=as400.example.com;Database=CLIENTS01;UID=user1;PWD=password1;");

2 个答案:

答案 0 :(得分:5)

如果您使用的是.NET Core软件包,则必须在PATH变量中包含驱动程序的路径(包含在NuGet软件包中)。

这是FAQ on the NuGet package on Developer Works的相关部分:

  

问:我是否需要进行任何其他配置才能使用此功能   配置。

 Yes,  On Windows :
   if C:\Users\<USERNAME>\ is the NuGet package folder then
   add to the path:  C:\Users\<USERNAME>\.nuget\packages\IBM.Data.DB2.Core\1.0.0.100\build\clidriver\bin

 and On Linux:
    append $HOME/.nuget/packages/IBM.Data.DB2.Core-lnx/1.0.0.100/build/clidriver/lib
    to the LD_LIBRARY_PATH.

我发现设置它的最简单方法是在项目设置中设置PATH变量。查看this blog post,了解一些不同的方法。

事实上,this other Developer Works page说:

  

下载和使用包的说明

     

以下是使用包

的先决条件      
      
  • 计算机中不应出现任何其他IBM数据库驱动程序。

  •   
  • 需要更新Path / LD_LIBRARY_PATH以包含程序包驱动程序路径。

  •   

答案 1 :(得分:0)

您需要安装可以到达的IBM数据服务器驱动程序包

http://www-01.ibm.com/support/docview.wss?uid=swg24038920

它包含您缺少的依赖项