我们想重用我们的.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之间混合使用?有人做过吗?
感谢帮助!