惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Tenable Blog
H
Heimdal Security Blog
K
Kaspersky official blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
S
Schneier on Security
G
GRAHAM CLULEY
U
Unit 42
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
C
CERT Recently Published Vulnerability Notes
Google DeepMind News
Google DeepMind News
罗磊的独立博客
Stack Overflow Blog
Stack Overflow Blog
阮一峰的网络日志
阮一峰的网络日志
Simon Willison's Weblog
Simon Willison's Weblog
C
Cisco Blogs
Cyberwarzone
Cyberwarzone
T
The Exploit Database - CXSecurity.com
Project Zero
Project Zero
Security Archives - TechRepublic
Security Archives - TechRepublic
www.infosecurity-magazine.com
www.infosecurity-magazine.com
博客园 - 司徒正美
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
V
Visual Studio Blog
博客园 - Franky
Engineering at Meta
Engineering at Meta
WordPress大学
WordPress大学
Jina AI
Jina AI
P
Proofpoint News Feed
P
Proofpoint News Feed
有赞技术团队
有赞技术团队
L
LINUX DO - 最新话题
宝玉的分享
宝玉的分享
N
News and Events Feed by Topic
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
博客园 - 聂微东
T
The Blog of Author Tim Ferriss
Spread Privacy
Spread Privacy
Application and Cybersecurity Blog
Application and Cybersecurity Blog
IT之家
IT之家
S
Security Affairs
博客园 - 叶小钗
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
小众软件
小众软件
N
News | PayPal Newsroom
Cloudbric
Cloudbric
AWS News Blog
AWS News Blog
W
WeLiveSecurity
The Last Watchdog
The Last Watchdog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
NISL@THU
NISL@THU

博客园 - Do you know, jack?

js继承摘要 Css中position、float和clear整理 基于组织角色的权限设计 oracle最精简客户端(3个文件+1个path变量就搞定oracle客户端) oracle客户端免安装配置、64位机器PL/SQL和VS自带的IIS连接问题 Throw与Throw ex区别,记录日志的方法 允许修改Svn注释 ctrl+Enter 自动加上 .com 而不是 .com.cn google chrome服务器hosts设置 Entity Framework关系映射容易出错的地方 CSS文件和JS文件组织 添加NotePad++到右键菜单 960 grid system的一点研究 如何查看NHibernate中生成的SQL web页面数据验证提醒方式 The RPC server is unavailable的解决方法 编写一份代码,支持多种布署方式 为什么要使用AOP? Enterprise Library 和 Spring.Net的比较
oracle数据库连接方式
Do you know, jack? · 2012-12-18 · via 博客园 - Do you know, jack?
安装了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);
        }
    }
}