zoukankan      html  css  js  c++  java
  • oracle数据库连接方式

    安装了Oracle Db Provider后Oracle.DataAccess.dll的路径是:D:\app\Administrator\product\11.2.0\client_1\ODP.NET\bin\2.x

    下面演示了使用OleDb, msdaora, System.Data.OracleClient.OracleConnection, Oracle.DataAccess.Client.OracleConnection 以及用DbProviderFactories.GetFactory方式来获取Connection

    另外如果是64位操作系统,需要安装64位的驱动

    代码如下:

    using System;
    using System.Data;
    using System.Data.Common;
    
    namespace WinTest
    {
        class Program
        {
            static void Main(string[] args)
            {
                ShowAllDbProviderFactories();
    
                string connString;
    
                /* ole db provider */
                connString = "Provider=OraOledb.Oracle;Data Source=xe;User ID=sa;Password=jack2008;";
                using (DbConnection conn = new System.Data.OleDb.OleDbConnection(connString))
                {
                    TestConnection(conn);
                }
    
                connString = "Provider=OraOleDb.Oracle.1;Data Source=xe;User ID=sa;Password=jack2008;";
                using (DbConnection conn = new System.Data.OleDb.OleDbConnection(connString))
                {
                    TestConnection(conn);
                }
    
                /* ms oracle provider, it is x86 version */
                //connString = "Provider=msdaora;Data Source=xe;User ID=sa;Password=jack2008;";
                //using (DbConnection conn = new System.Data.OleDb.OleDbConnection(connString))
                //{
                //    TestConnection(conn);
                //}
    
                connString = "Data Source=xe;User ID=sa;Password=jack2008;";
                using (DbConnection conn = new System.Data.OracleClient.OracleConnection(connString))
                {
                    TestConnection(conn);
                }
    
                connString = "Data Source=xe;User ID=sa;Password=jack2008;";
                using (DbConnection conn = new Oracle.DataAccess.Client.OracleConnection(connString))
                {
                    TestConnection(conn);
                }
    
                string providerInvariantName;
                providerInvariantName = "Oracle.DataAccess.Client";
                connString = "Data Source=xe;User ID=sa;Password=jack2008;";
                UseDbProviderFactoryGetConnection(providerInvariantName,connString);
    
                providerInvariantName = "System.Data.OracleClient";
                connString = "Data Source=xe;User ID=sa;Password=jack2008;";
                UseDbProviderFactoryGetConnection(providerInvariantName, connString);
    
                //connString = "Data Source=xe;User ID=sa;Password=jack2008;";
                //DbProviderFactory factory = DbProviderFactories.GetFactory("");
                //using (DbConnection conn = factory.CreateConnection())
                //{
                //    conn.ConnectionString = connString;
                //    TestConnection(conn);
                //}
    
                Console.WriteLine("go");
                Console.ReadLine();
    
            }
    
            
    
            private static void ShowAllDbProviderFactories()
            {
                /* all Db Provider Factory */
                DataTable dtFactory = DbProviderFactories.GetFactoryClasses();
                Console.WriteLine("------------------------------------");
                foreach (DataRow row in dtFactory.Rows)
                {
                    //for (int i = 0; i < dtFactory.Columns.Count; i++)
                    //{
                    //    Console.Write("{0}\t", row[i]);
                    //}
                    Console.Write("{0}\t{1}", row[2], row[3]);
                    Console.WriteLine();
                }
            }
    
            private static void UseDbProviderFactoryGetConnection(string providerInvariantName, string connString)
            {
                DbProviderFactory factory = DbProviderFactories.GetFactory(providerInvariantName);
                using (DbConnection conn = factory.CreateConnection())
                {
                    conn.ConnectionString = connString;
                    TestConnection(conn);
                }
            }
    
            private static void TestConnection(DbConnection conn)
            {
                Console.WriteLine("------------------------------------");
                string sql = "SELECT * FROM dept";
                DbCommand cmd = conn.CreateCommand();
                cmd.CommandText = sql;
                cmd.CommandType = CommandType.Text;
                conn.Open();
                using (IDataReader dr = cmd.ExecuteReader())
                {
                    while (dr.Read())
                    {
                        Console.WriteLine("{0}\t{1}\t{2}", dr[0], dr[1], dr[2]);
                    }
                }
                conn.Close();
            }
    
            private static void AddParameter(DbCommand cmd, string paramName, object paramValue)
            {
                DbParameter p = cmd.CreateParameter();
                p.ParameterName = paramName;
                p.Value = paramValue ?? DBNull.Value;
    
                cmd.Parameters.Add(p);
            }
        }
    }
  • 相关阅读:
    【bzoj1174】[Balkan2007]Toponyms Trie树
    【bzoj1786】[Ahoi2008]Pair 配对 dp
    【bzoj3956】Count 单调栈+可持久化线段树
    【bzoj4605】崂山白花蛇草水 权值线段树套KD-tree
    【bzoj3696】化合物 树形dp
    【bzoj1150】[CTSC2007]数据备份Backup 模拟费用流+链表+堆
    【bzoj3671】[Noi2014]随机数生成器 贪心
    【bzoj4653】[Noi2016]区间 双指针法+线段树
    【bzoj4197】[Noi2015]寿司晚宴 分解质因数+状态压缩dp
    用Python操作Named pipe命名管道,实用做法——os.read 或 os.write
  • 原文地址:https://www.cnblogs.com/zq8024/p/2824115.html
Copyright © 2011-2022 走看看