c#连接oracle数据库(C#如何连接Oracle数据库)
大家好,今天来为大家分享c#连接oracle数据库的一些知识点,和C#如何连接Oracle数据库的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!
C#连接Oracle的几种方式
一:通过System.Data.OracleClient(需要安装Oracle客户端并配置tnsnames.ora) 1.添加命名空间System.Data.OracleClient引用 2. using System.Data.OracleClient; 3. string connString= User ID=IFSAPP;Password=IFSAPP;Data Source=RACE;; OracleConnecti
一:通过System.Data.OracleClient(需要安装Oracle客户端并配置tnsnames.ora)
1.添加命名空间System.Data.OracleClient引用
2. using System.Data.OracleClient;
3.
string connString="User ID=IFSAPP;Password=IFSAPP;Data Source=RACE;";
OracleConnection conn= new OracleConnection(connString);
try
{
conn.Open();
MessageBox.Show(conn.State.ToString());
}
catch(Exception ex)
{
ShowErrorMessage(ex.Message.ToString());
}
finally
{
conn.Close();
}
二:通过System.Data.OracleClient(需要安装Oracle客户端不需配置tnsnames.ora)
1.添加命名空间System.Data.OracleClient引用
2. using System.Data.OracleClient;
3.
string connString="User ID=IFSAPP;Password=IFSAPP;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL= TCP)(HOST= 127.0.0.1)(PORT= 1521)))(CONNECT_DATA=(SERVICE_NAME= RACE)))";
OracleConnection conn= new OracleConnection(connString);
try
{
conn.Open();
MessageBox.Show(conn.State.ToString());
}
catch(Exception ex)
{
ShowErrorMessage(ex.Message.ToString());
}
finally
{
conn.Close();
}
三:通过System.Data.OleDb和Oracle公司的驱动
1.添加命名空间System.Data.OracleClient引用
2. using System.Data.OleDb;
3.
string connString="Provider=OraOLEDB.Oracle.1;User ID=IFSAPP;Password=IFSAPP;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL= TCP)(HOST= 127.0.0.1)(PORT= 1521)))(CONNECT_DATA=(SERVICE_NAME= RACE)))";
OleDbConnection conn= new OleDbConnection(connString);
try
{
conn.Open();
MessageBox.Show(conn.State.ToString());
}
catch(Exception ex)
{
ShowErrorMessage(ex.Message.ToString());
}
finally
{
conn.Close();
}
四:通过System.Data.OleDb和微软公司的Oracle驱动
1.添加命名空间System.Data.OracleClient引用
2. using System.Data.OleDb;
3.
string connString="Provider=MSDAORA.1;User ID=IFSAPP;Password=IFSAPP;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL= TCP)(HOST= 127.0.0.1)(PORT= 1521)))(CONNECT_DATA=(SERVICE_NAME= RACE)))";
OleDbConnection cnn= new OleDbConnection(connString);
try
{
conn.Open();
MessageBox.Show(conn.State.ToString());
}
catch(Exception ex)
{
ShowErrorMessage(ex.Message.ToString());
}
finally
{
conn.Close();
}
备注:
a.XP操作系统已经安装了微软公司的Oracle驱动C:\Program Files\Common Files\System\Ole DB\msdaora.dll
b.该驱动需要Oracle客户端的三个文件(oraocixe10.dll、oci.dll、ociw32.dll)放在System32下即可
五:使用ODP连接
1.下载安装ODP.NET(http://www.oracle.com/technetwork/developer-tools/visual-studio/downloads/index.html)
2.安装完全成后会产生一序列文件。
3.找到这个安装目录,打开文件夹%ORACLE_HOME%\Network\Admin在这个下面建立一个tnsnames.ora的文件,其内容可以参考其下的Sample目录下面的配置
Oracle.RACE=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=127.0.0.1)
(PORT=1521)
)
)
(CONNECT_DATA=
(SID=RACE)
(SERVER=DEDICATED)
)
)
Oracle.RACE为连接字符串名称,可以随便取。等号后面的字符串可以在Enterprise Manager Console工具中连接数据库后的TNS描述符中拷过来
4.引用Oracle.DataAccess命名空间
5. using Oracle.DataAccess.Client;
6.示例代码:
string connString="DATA SOURCE=Oracle.RACE;PERSIST SECURITY INFO=True;USER ID=IFSAPP;password=IFSAPP";
OracleConnection conn= new OracleConnection(connString);
try
{
conn.Open();
OracleCommand cmd= new OracleCommand(cmdText,conn);
OracleDataReader reader= cmd.ExecuteReader();
this.DataGridView1.DataSource= reader;
this.DataGridView1.DataBind();
}
catch(Exception ex)
{
ShowErrorMessage(ex.Message.ToString());
}
finally
{
conn.Close();
}
六:使用第三方驱动
第三方驱动有 Devart,下载驱动 http://www.devart.com/dotconnect/oracle/,但是是商业版,需要购买许可或破解
连接格式 User ID=myUsername;Password=myPassword;Host=ora;Pooling=true;Min Pool Size=0;Max Pool Size=100;Connection Lifetime=0;
1.引用Devart.Data.Oracle命名空间
2. using Devart.Data.Oracle;
3.
OracleConnection conn= new OracleConnection();
conn.ConnectionString="";
conn.Unicode= true;
conn.UserId="IFSAPP";
conn.Password="IFSAPP";
conn.Port= 1521;
conn.Server="127.0.0.1";
conn.Sid="RACE";
try
{
conn.Open();
//execute queries, etc
}
catch(Exception ex)
{
ShowErrorMessage(ex.Message.ToString());
}
finally
{
conn.Close();
}
C#如何连接Oracle数据库
数据源是从Oracle的安装目录下tnsnames.ora文件中去找的。而并非是在系统的“管理工具”下的“数据源(ODBC)”中找。这个tnsnames.ora文件是在
Oracle的安装目下的“client_1/network/admin/”下
Oracle连接字符串和 Oracle名称解析是不可分的。假定我们在 tnsnames.ora文件中定义了一个数据库别名 OraDb,如下:
OraDb=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=OTNSRVR)(PORT=1521))
)
(CONNECT_DATA=
(SERVER=DEDICATED)
(SERVICE_NAME=ORCL)
)
)
OraDb别名定义客户端的数据库地址连接信息。要使用上面所述的在 tnsnames.ora文件中定义的 OraDb别名,您需要使用以下语法:
string oradb="Data Source=OraDb;User Id=scott;Password=tiger;";// C#
==============================================
如果您想看到代码时一目了然,但是不嫌复杂的话,您可以修改连接字符串,这样就不需用 tnsnames.ora文件。只需用在 tnsnames.ora文件中定义别名的语句替换别名即可。
// C#
string oradb="Data Source=(DESCRIPTION="
+"(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=ORASRVR)(PORT=1521)))"
+"(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=ORCL)));"
+"User Id=scott;Password=tiger;";
。
然后创建对应的连接对象就行了
OracleConnection conn= new OracleConnection(oradb);
.Net连接Oracle数据库到底怎么配置
C#连接Oracle数据库(查询数据)
using System;
using System.Collections.Generic;
using System.ComponentModel;
//这行和下一行都要先在引用中填加system.data.oracleclient
using System.Data.OracleClient;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication1
{
public partial class Form1: Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
#region从region到endregion是手工写的。别的都是系统自动生成的
//定义连接数据库的字符串
string constring="data source=wzd;user=wzd;password=wzd;";
//进行连接
OracleConnection conn= new OracleConnection(constring);
try
{
conn.Open();//打开指定的连接
OracleCommand com= conn.CreateCommand();
//写好想执行的Sql语句
com.CommandText=
"select name from mytable where card_no='0000000002'";
OracleDataReader odr= com.ExecuteReader();
//读取数据,如果返回为false的话,就说明到记录集的尾部了
while(odr.Read())
{
//将读取到的值显示到定义的控件中。
this.lbl.Text= odr.GetOracleString(0).ToString();
}
odr.Close();//关闭reader.这是一定要写的
}
catch
{
MessageBox.Show("erro");//如果发生异常,则提示出错
}
finally
{
conn.Close();//关闭打开的连接
}
#endregion
}
}
}
C#中与Oracle连接的代码
注意:一定要添加这个:
项目->添加引用->.NET->System.Data.OracleClient.dll
using System;
using System.Data;
using System.Windows.Forms;
using System.Data.OracleClient;
namespace Test
{
///<summary>
///简洁期间,直接将实现写在构造函数中
///</summary>
public class Test
{
public Test()
{
//
// TODO:在此处添加构造函数逻辑
//
string ConnectionString=
"Data Source=LiPu; User Id=SCOTT; Password=scott";
//连接字符串,Data Source是指数据库名字.如我用的是本机的Oracle
//的数据库,名字为LiPu. user id是
//用户名,你可以用System或是你自己添加的一个用户.Password是
//对应用户的密码.
//创建一个新连接
OracleConnection conn= new OracleConnection(ConnectionString);
try
{
conn.Open();//打开连接
OracleCommand cmd= conn.CreateCommand();
cmd.CommandText="select* from emp";//SQL语句
OracleDataReader rs= cmd.ExecuteReader();
//读取数据,如果rs.Read()返回为false的话,就说明到记录集的尾部了
while(rs.Read())
{
MessageBox.Show(rs.GetString(1));
}
rs.Close();
}
catch(Exception e)
{
MessageBox.Show(e.Message);
}
finally
{
conn.Close();
}
}
}
}
C#连接Oracle数据库(更改数据库中的记录并查询更改后的数据)
using System;
using System.Collections.Generic;
//这行和下一行都要先在引用中填加system.data.oracleclient
using System.ComponentModel;
using System.Data.OracleClient;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication1
{
public partial class Form1: Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
#region从region到endregion是手工写的。别的都是系统自动生成的
//定义连接数据库的字符串
string constring="data source=wzd;user=wzd;password=wzd;";
//进行连接
OracleConnection conn= new OracleConnection(constring);
try
{
conn.Open();//打开指定的连接
OracleCommand com= conn.CreateCommand();
com.CommandText=
"select name from fin_ipr_inmaininfo where card_no="+
"'0000000002'";//写好想执行的Sql语句
OracleDataReader odr= com.ExecuteReader();
//读取数据,如果返回为false的话,就说明到记录集的尾部了
while(odr.Read())
{
//将读取到的值显示到定义的控件中。
this.lbl.Text= odr.GetOracleString(0).ToString();
}
odr.Close();//关闭reader.这是一定要写的
}
catch
{
MessageBox.Show("erro");//如果发生异常,则提示出错
}
finally
{
conn.Close();//关闭打开的连接
}
#endregion
}
private void button2_Click(object sender, EventArgs e)
{
#region从region到endregion是手工写的。别的都是系统自动生成的
//定义连接数据库的字符串
string constring="data source=wzd;user=wzd;password=wzd;";
//进行连接
OracleConnection conn= new OracleConnection(constring);
try
{
conn.Open();//打开指定的连接
OracleCommand com= conn.CreateCommand();
//写好想执行的Sql语句
com.CommandText=
"update fin_ipr_inmaininfo set name='wzd' where card_no='0000000002'";
com.ExecuteNonQuery();
}
catch
{
MessageBox.Show("erro");//如果发生异常,则提示出错
}
finally
{
conn.Close();//关闭打开的连接
}
#endregion
}
}
}
c#连接oracle数据库和C#如何连接Oracle数据库的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!