.net应用odp.net小记

一,下载ODAC112040Xcopy_64bit并解压,在OTP里找。
在cmd中执行>install.bat odp.net4 d:\driver4oracle11.2 odac

odp.net4————你想部署的driver,本人使用.netframework4,不是asp.net和.net2,所以,没用使用All和指定的其它选项。
d:\driver4oracle11.2————你要部署的目标客户机的oracle_home,当然在windows下就加入它到系统环境变量path中。
odac————当在同目录有多个driver时,可以区别吧,反正,因为加了它,可能会报错。但不影响使用。
[true]———-可选的,默认值,即把odp.net依赖的instantclient安装,当你加false时,不装依赖且考虑和已经存在的新版本oracle或现有的环境配合。

当执行了上面的命令后,instantclient(即被odp.net依赖的)也一并从压缩包中被抽取,拷安装到了oracle_home目录中。

二,然后就是设置tnsnames.ora文件。从服务端上相应位置拷过来,放置到home目录中。顺便执行下*access.dll同目录中的oraprovcfg.exe,它是用于注册系统环境变量的。虽然上面已经配置好了,多来一次也无妨。

三,开始客户端程序的开发吧,把home路径中的Oracle.DataAccess.dll拷到项目的debug,和exe同级下面,并在VS中引用,加入using行:
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;
代码示例:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

namespace odp
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();

}

private string strConn = “Data Source=(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = ohala-PC)(PORT = 1521))(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = XE)));”+
“User id=JINGHU;Password=JINGHU;” ;
public void initDBConn()
{
try
{
using(OracleConnection objConn = new OracleConnection(strConn))
{
objConn.Open();
string strSQL = “select * from V_TM_SEGMENT_CFG where SEGMENT_CODE=10 order by STATION_SEQUENCE,TRACK_CODE”;

using(OracleDataAdapter objAdapter = new OracleDataAdapter(strSQL,objConn))
{
//
DataSet ds = new DataSet();
objAdapter.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
//dataGridView1.
dataGridView1.Show();
}

//using (OracleCommand objCommand = new OracleCommand(strSQL, objConn))
//{
// using(OracleDataReader objReader = objCommand.ExecuteReader())
// {
// while (objReader.Read())
// {
// Console.WriteLine(“segment_code is :” + objReader[0].ToString() + “;station_code is :” + objReader[1].ToString());
// //dataGridView1.DataSource
// }

// }
//}//command
}
} catch(Exception ex)
{

}
}

private void button1_Click(object sender, EventArgs e)
{
initDBConn();
}
}
}