Oracle数据连接方式,oracle数据库连接方式

http://www.cnblogs.com/zq8024/archive/2012/12/18/2824115.html

安装了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);

}

}

}

转载于:https://www.cnblogs.com/zq8024/archive/2012/12/18/2824115.html

标签:Console,数据库,System,oracle,using,Data,连接,conn,connString

来源: https://blog.csdn.net/weixin_30782293/article/details/97249431

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值