首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DB2与.NET核心2.1

DB2与.NET核心2.1
EN

Stack Overflow用户
提问于 2018-06-06 16:47:42
回答 3查看 10.7K关注 0票数 4

我在VisualStudio2017& .Net Core2.1中安装了IBM.Data.DB2.Core版本(1.2.2.100)。我试图测试简单的DB2 (z/OS服务器)连接,并获得以下错误。我们的DB2服务器类型是OS390,版本是11。

错误42968 SQL1598N连接到数据库服务器的尝试由于许可证问题而失败。

代码语言:javascript
复制
 using (DB2Connection con = new DB2Connection("Server=xxxx.xxxx.com:446;Database=XXXX;UID=XXXXXX;PWD=xxxxx"))
            {
                try
                {
                    con.Open();
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            } 

此外,我还将许可文件复制到.nuget\packages\ibm.data.db2.core\1.2.2.100\build\clidriver\license文件夹。我尝试了这里提到的所有东西:package?lang=en

有什么想法吗?

EN

回答 3

Stack Overflow用户

发布于 2018-06-08 18:40:29

for DB2核心版本1.1 & 1.2附带了DB2驱动程序版本11。如果DB2版本小于11,则这两个包不支持。下面是解决此问题的步骤。

  1. 安装IBM DB2 Nuget软件包1.0版
  2. 用1.0安装路径更新环境路径变量
  3. 删除/取消安装计算机上安装的任何其他DB2驱动程序
  4. 关闭Visual版本并重新打开它,它将正常工作,不会出现任何问题。

另外,1.0版本不需要许可证文件。希望这能有所帮助。

票数 3
EN

Stack Overflow用户

发布于 2019-04-18 15:56:21

在这个问题上花了几个小时,下面是我使用最新版本的软件包1.3.0.100和我已经安装的有效DB2 11.1许可证的效果。我怀疑这种方法也适用于1.1和1.2,前提是您已经拥有了许可证。

将以下块添加到项目文件中,根据本地设置的需要调整DB2License的路径:

代码语言:javascript
复制
  <ItemGroup>
    <DB2License Include="C:\ProgramData\IBM\DB2\{FOLDER NAME THAT VARIES BY INSTALL}\license\**\*.*"/>
  </ItemGroup>
  <Target Name="CopyFiles" AfterTargets="AfterBuild">
    <Copy SourceFiles="@(DB2License)" DestinationFolder="$(OutDir)\clidriver\license\" />
  </Target>

重要的是,在应用程序运行之前,$(OutDir)\clidriver\license\拥有表示有效的DB2 11.1+许可证所需的所有文件。对我来说有3份文件。对于服务器构建和发布,可能需要稍微复杂一些的设置才能将正确的文件发送到预期的位置。

以下是我尝试过的其他一些似乎对我没有帮助,但可能会对其他人有所帮助的事情:

  1. IBM站点上的一些文章建议将%userprofile%\.nuget\packages\IBM.Data.DB2.Core\<version>\build\clidriver\bin%userprofile%\.nuget\packages\IBM.Data.DB2.Core\<version>\build\clidriver\license添加到PATH环境变量中。这似乎完全没有必要。
  2. 其他文章或论坛文章建议将您的许可文件复制到nuget包许可证文件夹%userprofile%\.nuget\packages\IBM.Data.DB2.Core\<version>\build\clidriver\license。这是可行的,但并不理想,因为它需要在nuget包还原之后在每台机器上执行,然后在稍后更改nuget包的版本时重新完成。当然,提到“嘿,只需将许可复制到此路径”的地方,都没有指定包含现有许可的默认目录:C:\ProgramData\IBM\DB2\{FOLDER NAME THAT VARIES BY INSTALL}\license\
票数 3
EN

Stack Overflow用户

发布于 2019-11-02 00:15:05

您可以使用本教程

applications.html

/CODE示例/

代码语言:javascript
复制
using System;
using IBM.Data.DB2;

namespace dotNetSSLTest
{
    class Program
    {
        static void Main(string[] args)
        {
            DB2Command MyDB2Command = null;
            // Use the dsn alias that you defined in db2dsdriver.cfg with the db2cli writecfg command in step 1.
            String MyDb2ConnectionString = "database=alias;uid=userid;pwd=password;"; 
            DB2Connection MyDb2Connection = new DB2Connection(MyDb2ConnectionString);
            MyDb2Connection.Open();
            MyDB2Command = MyDb2Connection.CreateCommand();
            MyDB2Command.CommandText = "SELECT branch_code, city from GOSALES.BRANCH";
            Console.WriteLine(MyDB2Command.CommandText);

            DB2DataReader MyDb2DataReader = null;
            MyDb2DataReader = MyDB2Command.ExecuteReader();
            Console.WriteLine("BRANCH\tCITY");
            Console.WriteLine("============================");
            while (MyDb2DataReader.Read())
            {
                for (int i = 0; i <= 1; i++)
                {
                    try
                    {
                        if (MyDb2DataReader.IsDBNull(i))
                        {
                            Console.Write("NULL");
                        }
                        else
                        {
                            Console.Write(MyDb2DataReader.GetString(i));
                        }
                    }
                    catch (Exception e)
                    {
                        Console.Write(e.ToString());
                    }
                    Console.Write("\t"); 

                }
                Console.WriteLine("");
            }
            MyDb2DataReader.Close();
            MyDB2Command.Dispose();
            MyDb2Connection.Close();
        }
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50725613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档