一、引言
前期使用C#操作数据库一直使用的是VS集成的system.data.oracleclient来连接Oracle数据库并进行数据库操作,但是最近由于项目要求不得不考虑将驱动换成Oracle.ManagedDataAccess驱动,主要原因如下
1、最近的项目有连接远程数据库的需求, 而如果使用前期的驱动在未安装Oracle数据库客户端的情况下会报错:“System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本”,该问题也可以通过一定方式解决,但是太麻烦了,所以我考虑更换为新的驱动。
2、visual studio中提醒过时,因为微软和甲骨文存在数据库的竞争关系,并且从.NET的更新来看这个程序集没有再更新过,对于数据库一直在更新而调用的程序集一直不更新敢用下去么?
3、甲骨文后来出了ODP.NET,各种资料以及官网上都说需要安装ODP.NET,然后引用Oracle.ManagedDataAccess.dll,他和visual studio中的程序集最大的区别在于会随着数据库更新,是oracle官方出的驱动;
二、 驱动使用方式
1、在项目引用按钮上右击选择管理NuGet程序包
2、 搜索Oracle选择第一个
3、 进行安装即可
三、 示例代码(连接远端数据库)
1、 App.config中配置连接字符串。
<add name="xxx" connectionString="user id=xxx;password=xxx;data source=8.8.8.8:1521/orcl; Pooling=false;"/>
2、 引用:Oracle.ManagedDataAccess.Client
using Oracle.ManagedDataAccess.Client;
3、程序中连接Oracle查询数据。(此处基本大同小异)
private string connString = ConfigurationManager.ConnectionStrings["xxx"].ToString();//获取连接字符串
private void button1_Click(object sender, EventArgs e)
{
OracleConnection con = new OracleConnection(connString);//实例化
con.ConnectionString = connString;
con.Open();//建立连接,打开数据库
OracleCommand cmd = con.CreateCommand();// 创建数据库对象
cmd.CommandText = "select * from log";
OracleDataReader reader = cmd.ExecuteReader();
while (reader.Read())//读取每行数据
{
MessageBox.Show("txt: " + reader.GetString(0));
}
}