C# 连接Oracle(利用ODP.net,不装oracle客户端)

以方便部署连接oracle的.net程序,oracle官方提供了一个简化版的client,即instant client

通过instant
client和ODP.net中的Oracle.DataAccess.dll,我们虽得一本万利之部署.net应用程序或者站点。

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 = new List<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>

还得参照官方的文档,不过是英文的,呵呵!

Build a .NET Application on the Oracle Database with Microsoft Visual
Studio
2010

相关文章