【问题标题】:Connecting to IBM DB2 10.1 from C#从 C# 连接到 IBM DB2 10.1
【发布时间】:2018-02-23 19:21:41
【问题描述】:

我需要从 .Net 应用程序连接到 IBM DB2 10.1。我已经开始使用控制台应用程序来让连接作为概念证明工作。我正在使用 IBM.Data.DB2 命名空间。

我收到以下错误:

 InvalidOperationException was unhandled: SQL1159  Initialization error with DB2 .NET Data Provider, reason code 2, tokens C:\Users\myname\Desktop\dbConnect\dbConnectApp\dbConnectApp\bin\db2app.dll, , Process Owner: XXXXX\myname

起初我遇到了处理器架构错误。我通过从 32 位 DB2 数据驱动程序中引用 IBM.Data.DB2 dll 来解决这个问题,然后在 Visual Studio 的配置管理器中将平台执行架构更改为 x86。

一些信息:

Windows Server 2008 R2 上的 Visual Studio 2012、.NET 4.5、IBM DB2 10.1

示例代码:

  static void SelectRow(string myConnectionString)
    { 
        if (myConnectionString == "")
        {
            myConnectionString = "server=MyServerName:60001;Database=mydatabasename;UID=db2admin;PWD=Mypassword1!;";
        }
        DB2Connection myConn = new DB2Connection(myConnectionString);
        string mySelectQuery = "Select * from DB_SCH.USER";
        DB2Command myDB2Command = new DB2Command(mySelectQuery);
        myDB2Command.Connection = myConn;
        myConn.Open();
        myDB2Command.ExecuteNonQuery();
        myConn.Close();
    }

可以做些什么来修复这个错误?从 C# 连接到 Db2 还有哪些其他方法?

编辑:在 Visual Studio 项目中更改为 64 位版本的 IBM.Data.Db2 并更改为 64 位处理器架构后出现新错误:

 SQL1159  Initialization error with DB2 .NET Data Provider, reason code 3, tokens C:\Users\myname\Desktop\dbConnect\dbConnectApp\dbConnectApp\bin\db2app64.dll, , Process Owner: xxxxx\myusername

【问题讨论】:

  • 与您的问题无关,但使用 ExecuteNonQuery 执行的 Select 查询没有意义。
  • 请说明您在哪一行得到了异常
  • @Steve 我的请求——异常发生在 myConn.Open()
  • @Steve 我刚开始的时候不是选择查询。不过还是谢谢你的建议。
  • 您的 Db2 服务器是 32 位还是 64 位版本?您需要使用 Db2 V10.1 fixpack 6(适用于 Windows Server...),并且您还需要确保您还安装了“IBM Database Add-Ins for Visual Studio”(默认情况下未安装,但它是 db2setup GUI 上的一个选项,也可以单独安装)。这是可从 IBM 修复中心下载的 V10.1.0.6 的“服务器修复包”的一部分。我无法从您的问题中判断您是否已经正确安装了这些组件,或者哪些位数等。

标签: c# database db2 database-connection db2-luw


【解决方案1】:

您在 Windows-Server 2008 R2 上使用 Db2 V10.1 的修订包 0,全部为 64 位。

该 Db2 构建早于 Visual-Studio-2012,因此您会遇到问题,直到您部署明确支持 Visual-Studio-2012 的 Db2 构建。

最好的办法是将 Db2 服务器升级到 V10.1 的最终修订包,即修订包 6(当前日期),可从 IBM Fix Central 网站下载。我建议您下载 server 修订包映像,并按照 Db2 知识中心的步骤进行安装前步骤和安装后步骤。 server-fixpack 无需现有安装即可安装(它将工作 90 天),这使您可以在提交到服务器之前在开发环境中对其进行测试。

在使用 db2setup GUI 安装期间,您需要明确选择安装“IBM Database Add-Ins for Visual Studio”组件,该组件提供与 Visual-Studio-2012 配合使用的外部插件。

从技术上讲,Db2 V10.1 对 Visual-Studio-2012 的支持到达了 V10.1 修订包 2,但如果您必须麻烦应用新的修订包,您不妨安装 V10 的最终修订包。 1 树,只是为了获得一些年的错误修复。

另一种选择是将 Db2 的版本升级到 V10.5 或 V11.1,但这将涉及新许可证,而安装修订包将重新使用现有许可证。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-05
    • 2019-12-09
    • 1970-01-01
    • 1970-01-01
    • 2022-07-17
    • 2013-10-11
    • 2016-12-30
    相关资源
    最近更新 更多