Microsoft .NET 框架的推出已经创造出一种不同于 COM 的新的 Windows 应用服务器环境。使用 COM 时,可以通过 Oracle Objects for OLE (OO4O)、ADO/OLE DB 或 ODBC 访问 Oracle 数据库中的数据。在 .NET 环境中,用户仍然可以通过 OLE DB 和 ODBC 使用由 Microsoft 提供的数据访问桥接来访问 Oracle 数据库。对于 OLE DB,这种桥接是 OLE DB .NET;对于 ODBC,则是 ODBC .NET。这些桥接提供了被管理的 .NET 层和未被管理的 COM 或 Win32 层之间的交互。Oracle Data Provider for .NET (ODP.NET) 代表访问 Oracle 数据库的第三种方法。
与其他 .NET 数据提供程序的区别
在三种数据访问方法中,ODP.NET 最接近 .NET 环境,绕过了对 OLE DB 或 ODBC 的需求。它的特点是对 Oracle 数据库的高性能访问,同时提供对那些通过 OLE DB .NET 和 ODBC .NET 不能使用的高级 Oracle 功能的访问。与 OLE DB .NET 和 ODBC .NET 相似,ODP.NET 可以通过任何 .NET 语言来使用,如 C# 和 Visual Basic .NET。一个重要的区别是,ODP.NET 无需其他数据访问桥接,因而其性能优于 OLE DB .NET 和 ODBC .NET。此外,由于这些 .NET 桥接旨在用于一般的数据源,因此它们不提供对高级数据库功能的完全访问。
本文介绍了C#连接Oracle数据库的过程。通过instant client和ODP.net中的Oracle.DataAccess.dll,我们就可以方便的部署.net应用程序或者站点,而不需要安装Oracle客户端。接下来我们就介绍这一过程。
1. ODAC的安装
在oracle的官方网站上下载与你安装的oracle对应版本的ODAC。
下载地址:ODAC Download
下载好后解压安装,安装时不用安装全部的组件。主要安装以下组件:
Oracle Instant Client
Oracle Data Provider For .net2.0
Oracle rovider For Asp .net
2. 环境变量的设置
设置Windows的环境变量:
ORACLE_HOME :ODAC的安装目录(类似 ~\app\Administrator\product\11.1.0\client_1);
LD_LIBRARY_PATH :%ORACLE_HOME%;
TNS_ADMIN : %ORACLE_HOME%;
在PATH的最前面追加:%ORACLE_HOME%;
3. 监听文件tnsnames.ora的配置
在目录%ORACLE_HOME%下新建文件tnsnames.ora,内容如下:
数据库SID =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = Oracle主机名或者IP)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = 数据库SID)
)
)
4. plsqldev
这样配置好后,plsqldev就可以连接上oracle数据库了。
5. C#连接Oracle
C#连接oracle的示例代码如下:
OracleConnection conn =
new OracleConnection();
try
{
conn.ConnectionString = ConfigurationManager.ConnectionStrings["oradb"].ConnectionString;
conn.Open();
string sql = " select id,content from test"; // C#
OracleCommand cmd = new OracleCommand(sql, conn);
cmd.CommandType = CommandType.Text;
OracleDataReader dr = cmd.ExecuteReader(); // C#
List<string> contents = newList<string>();
while(dr.Read())
{
contents.Add(dr["content"].ToString());
}
listBox1.ItemsSource = contents;
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
conn.Clone();
}
在程序app.config或者web.config中追加数据库连接的配置。
<connectionStrings >
<add name="oradb"connectionString="Data Source=(DESCRIPTION=
(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.1)(PORT=1521)))
(CONNECT_DATA=(SERVICE_NAME=****)));
User Id=***;Password=***;"/>
</connectionStrings>
按照上述的步骤执行,如果没有错误,就可以成功地连接数据库了。