zoukankan      html  css  js  c++  java
  • C# 使用 sid 连接 Oracle(无需安装 Oracle 客户端)

    最接我们公司的折桂打印平台系统,决定增加支持新的数据库:Oracle 数据库。其中主要代码是 C#, 其次是 Java。 Java 连各种数据库,很容易,下载 JDBC 驱动程序就可以了。C# 相对麻烦一点,我决定花点时间,进行调研/学习,调通 C# 连接 Oracle(无需安装 Oracle 客户端)。

    经过几天的网上搜索,中文、英文的资料,都看了不少。绝大多数,不靠谱,根本行不通,其文中说是可以不需要安装 Oracle 客户端,文章下方有人反馈,不安装Oracle 客户端运行时会报错,博主都不回应。

    偶尔发现,有个方法,C# 使用 sid 连接 Oracle(无需安装 Oracle 客户端),可以成功。特记录,以防遗忘。兼供各位参考。

    以下是详细步骤:

    a.使用 NuGet 安装 Oracle.ManagedDataAccess 到项目。

    使用 Visual Studio 打开项目,右键点击项目,弹出菜单选择“管理 NuGet 程序包”,搜索并安装 Oracle.ManagedDataAccess。

    此处,我使用的是 Visual Studio Community 2019 , NuGet 搜索后安装的是 Oracle.ManagedDataAccess 19.10.1 。

    如果弹出窗口,要求接受协议,选择“是”。

    b. 编写代码,连接 Oracle 数据库,使用 sid, 不使用 tnsname。

    示例代码如下:

     1 public void test()
     2 {
     3     //OK
     4     string strConnectBySid = "Data Source =(DESCRIPTION =(ADDRESS=(PROTOCOL=TCP)(HOST =" + OracleConnectInfo.strDbIPOrHostName
     5         + ")(PORT=" + OracleConnectInfo.iDbPort + "))(CONNECT_DATA=(SID =" + OracleConnectInfo.strDbSID
     6         + "))); User Id = " + OracleConnectInfo.strDbUser + "; Password=" + OracleConnectInfo.strDbPassword + ";";
     7 
     8     using (OracleConnection conn = new OracleConnection(strConnectBySid))
     9     {
    10         conn.Open();
    11         string sql = "select 1 from dual";
    12         //string sql = "select cname from tm_user where id = 21728";
    13 
    14         using (OracleCommand cmd = new OracleCommand(sql, conn))
    15         {
    16             object o = cmd.ExecuteScalar();
    17             System.Console.WriteLine("ExecuteScalar:" + o);
    18         }
    19         conn.Close();
    20     }
    21 }

    请注意,如果使用 tnsname, 则需要安装 oracle 客户端。而直接使用 sid, 则不需要安装 oracle 客户端。

    ===============欢迎转载,转载请注明出处:https://www.cnblogs.com/jacklondon/

    转载请注明出处: http://www.cnblogs.com/jacklondon ; 欢迎访问 http://www.zheguisoft.com/ 并提建议。
  • 相关阅读:
    win10 UWP button
    内网分享资源
    内网分享资源
    CF724F Uniformly Branched Trees
    win10 UWP FlipView
    win10 UWP FlipView
    win10 UWP FlipView
    搭建阿里云 centos mysql tomcat jdk
    搭建阿里云 centos mysql tomcat jdk
    win10 UWP 申请微软开发者
  • 原文地址:https://www.cnblogs.com/jacklondon/p/dotnet_connect_to_oracle_by_sid_without_oracle_client.html
Copyright © 2011-2022 走看看