zoukankan      html  css  js  c++  java
  • ADO.Net连接Oracle

    1、添加 Oracle.ManagedDataAccess.dll

    2、连接Oracle的实例得添加到Oracle的监听器中,不然会报“ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务”的错,添加如下,本例使用的是Oracle10g,找到C:oracleproduct10.2.0db_1NETWORKADMIN下的lisener.org,打开后修改添加标红的部分

    # listener.ora Network Configuration File: C:oracleproduct10.2.0db_1
    etworkadminlistener.ora
    # Generated by Oracle configuration tools.
    
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = PLSExtProc)
          (ORACLE_HOME = C:oracleproduct10.2.0db_1)
          (PROGRAM = extproc)
        )
        (SID_DESC =
          (GLOBAL_DBNAME = ORCL)
          (ORACLE_HOME = C:oracleproduct10.2.0db_1)
          (SID_NAME = ORCL)
        )
      )
    
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.121.130)(PORT = 1521))
        )
      )
    

      3、连接字符串:

    string connStr = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.121.130)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL)));Persist Security Info=True;User ID=scott;Password=tiger;";

    其中Oracle数据库服务器IP:192.168.121.130

    ServiceName:ORCL

    用户名:scott

    密码:tiger

    4、查看Oracle的实例名,用sys作为dba登录,执行语句 select name from v$database;

    5,C#代码

    using System;
    using System.Collections.Generic;
    using System.Configuration;
    using Oracle.ManagedDataAccess.Client;
    using System.Linq;
    using System.Text;
    
    namespace ADOSample
    {
        class Program
        {
            static void Main(string[] args)
            {          
                string connStr = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.121.130)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL)));Persist Security Info=True;User ID=scott;Password=tiger;";
                using (OracleConnection conn = new OracleConnection(connStr))
                {
                    string sql = "select * from dept ";
                    conn.Open();
                    using (OracleCommand cmd = new OracleCommand(sql, conn))
                    {
                        using (OracleDataReader dataReader = cmd.ExecuteReader())
                        {
                            while (dataReader.Read())
                            {
                                string obj = (string)dataReader[1];
                                Console.WriteLine(obj);
                            }
                        }                    
    
                    }
                }
                Console.ReadKey();
            }
        }
    }
    

      

  • 相关阅读:
    C#跨窗体操作
    搞IT的不如去养鸡养猪了
    C# 委托实例(跨窗体操作控件)
    FastReport 自定义页长
    SQL 根据一个表更新另一个表的内容
    Delphi中用ADOQuery实现主从表的例子(转)
    旅行的意义
    嘉州影院的网址
    纯粹的人
    Delphi中流的使用:压缩与解压缩(TCompressionStream、TDecompressionStream)
  • 原文地址:https://www.cnblogs.com/javabg/p/7231121.html
Copyright © 2011-2022 走看看