在混合的.net core / .net 4.7项目中使用DB2

时间:2019-06-14 09:36:48

标签: c# windows .net-core db2

我们想重用我们的.net 4.7库(C#)从新的.net核心2.2项目访问DB2 10.5数据库。不幸的是,如果打开连接,我会收到错误消息:

  

System.InvalidOperationException:“ SQL1159初始化错误,带有   DB2 .NET数据提供程序,原因码2,令牌   D:\ Projekte \ Main-Branch-IpIdentity \ Services \ InvoiceApi \ InvoiceApi \ bin \ db2app64.dll,   ,流程所有者

可以在C:\ Program Files \ IBM \ SQLLIB \ BIN下的路径中找到缺少的ddl。 我将所有内容从此目录复制到项目输出目录,并得到:

  

System.InvalidOperationException:“ SQL1159初始化错误,带有   DB2 .NET数据提供程序,原因码10,令牌0.0.0,10.5.5,进程   所有者:

我在.net core中编写了一个控制台项目,通过访问DB2来调用.net core dll:

   class Program
   {
      static void Main(string[] args)
      {
         var count = DB2AccessCore.Db2Access.GetCount();
      }
   }

namespace DB2AccessCore

  public class Db2Access
  {
     public static int GetCount()
     {
        var con = new DB2Connection("....");
        con.Open();

        var cmd = con.CreateCommand();
        cmd.CommandText = "SELECT COUNT(*) FROM data.abstimmfeldausschnitt";
        var a = cmd.ExecuteScalar();
        con.Close();
        return (int)a;
     }
  }

} }

如果我在.net 4.7控制台和dll中使用相同的代码,则该示例也可以正常工作。但我从核心控制台调用4.7 dll却遇到异常:

  

System.AccessViolationException:“试图读取或写入受保护的   记忆。这通常表明其他内存已损坏。”

声音不好……

我怎么了?或者DB2不可能在core和4.7之间混合使用?有人做过吗?

感谢帮助!

0 个答案:

没有答案