使用 .NET 以编程方式连接

定义 .NET 应用程序与 Db2 数据库 BLUDB 之间的连接。

开始之前

必须先执行以下步骤,然后才能连接到数据库:
  • 验证先决条件,包括安装驱动程序包、配置本地环境以及下载 SSL 证书(如果需要)

  • 收集连接信息,包括数据库详细信息(例如,主机名和端口号)和连接凭证(例如,用户标识和密码)

关于此任务

下列步骤显示如何使用 .NET 将应用程序连接到数据库。

过程

  1. 从命令提示符输入以下命令。
    这些命令将在计算机上的驱动程序配置文件 (db2dsdriver.cfg) 中创建新条目,并设置连接属性。此步骤只需执行一次。
    • 对于不使用 SSL 的连接:
      db2cli writecfg add -database BLUDB -host hostname -port 50000
      db2cli writecfg add -dsn alias -database BLUDB -host hostname -port 50000
    • 对于使用 SSL 的连接:
      db2cli writecfg add -database BLUDB -host hostname -port 50001
      db2cli writecfg add -dsn alias -database BLUDB -host hostname -port 50001
      db2cli writecfg add -database BLUDB -host hostname -port 50001 -parameter "SecurityTransportMode=SSL"
    其中:
    hostname
    服务器的主机名。
    alias
    要用于建立 .NET 连接的别名。请选择对您有意义的名称;例如,analytics
  2. 可选: 要验证与数据库的 .NET 连接,请从命令提示符输入以下命令:
     testconn40 "DATABASE=alias;UID=userid;PWD=password;"
    其中:
    alias
    在步骤 1 中使用 db2cli writecfg 命令创建的别名
    userid
    您的 Db2 用户标识。
    password
    用来连接到 Db2 数据库的密码。

示例

以下语法显示使用 .NET 驱动程序来建立数据库连接的样本 C# 代码。
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();
        }
    }
}