从 C# 连接到 IBM DB2 10.1
Connecting to IBM DB2 10.1 from C#
我需要从 .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 来解决这个问题
一些信息:
Visual Studio 2012,.NET 4.5,IBM DB2 10.1 on Windows Server 2008 R2
示例代码:
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 还有哪些其他方法?
编辑:更改为 IBM.Data.Db2 的 64 位版本并在 Visual Studio 项目中更改为 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
您正在 Windows-Server 2008 R2 上使用 Db2 V10.1 的修复包 0,全部为 64 位。
Db2 构建 pre-dates Visual-Studio-2012 等您会遇到问题,直到您部署明确支持 Visual-Studio-2012 的 Db2 构建。
最好的办法是将 Db2 服务器升级到 V10.1 的最终修复包,即修复包 6(当前日期),可从 IBM Fix Central 网站下载。我建议您下载 server 修复包映像,并按照 Db2 知识中心的步骤进行 pre-installation 步和 post-installation 步。 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,但这将涉及新的许可证,而安装修复包将 re-use 您现有的许可证。
我需要从 .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 来解决这个问题一些信息:
Visual Studio 2012,.NET 4.5,IBM DB2 10.1 on Windows Server 2008 R2
示例代码:
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 还有哪些其他方法?
编辑:更改为 IBM.Data.Db2 的 64 位版本并在 Visual Studio 项目中更改为 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
您正在 Windows-Server 2008 R2 上使用 Db2 V10.1 的修复包 0,全部为 64 位。
Db2 构建 pre-dates Visual-Studio-2012 等您会遇到问题,直到您部署明确支持 Visual-Studio-2012 的 Db2 构建。
最好的办法是将 Db2 服务器升级到 V10.1 的最终修复包,即修复包 6(当前日期),可从 IBM Fix Central 网站下载。我建议您下载 server 修复包映像,并按照 Db2 知识中心的步骤进行 pre-installation 步和 post-installation 步。 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,但这将涉及新的许可证,而安装修复包将 re-use 您现有的许可证。