最近一项目,要写成一个From程序,并且有关数据操作都是和Oracle打交道。。。
这可累了,大家都知道,本机不装Oracle客户端,本机的程序是不能访问Oracle数据库的。
可是一个客户端最少也得八十多兆。太大了。再多,程序部署也不方便。
在网上找了找还真有解决办法。狂喜.....好景不长啊。。。最后证实都不太好用。。。
最后终于在网络和同事们的共同努力下。终于测试成功。。
方法如下:(环境:Vs2003+Oracle10g)
1、把instantclient-basic-win32-10.2.0.4.zip中的文件解压到指定位置(我本机是解压到D:/fox,并命名为:instantclient)
其内面应该包括:BASIC_README、oci.dll、ocijdbc10.dll、ociw32.dll、orannzsbb10.dll、oraocci10.dll、oraociei10.dll、classes12.jar、ojdbc14.jar九个文件.
(注:下载地址:http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html;需注册用户,我下载的是:instantclient-basic-win32-10.2.0.4.zip)
2、添加tnsnames.ora文件(添加到D:/fox/instantclient文件中):
文件tnsnames.ora其内容:
# tnsnames.ora Network Configuration File: D:/fox/instantclient/tnsnames.ora /*这是此文件地址*/
# Generated by Oracle configuration tools.
ORCL1 =/*这是本机联系Oracle服务器的服务名称,代码中用到*/
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 服务器地址IP 或服务器名称)(PORT = 服务器端口号,默认为“1521“))
)
(CONNECT_DATA =
(SERVICE_NAME = 服务器数据库服务的名字,默认为:”orcl“)
)
)
3、添加注册表内容:(其内容如下,涉及到的文件位置的根据自己需要改)
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Session Manager/Environment]
"LD_LIBRARY_PATH"="D://fox//instantclient"
"TNS_ADMIN"="D://fox//instantclient"
"NLS_LANG"="AMERICAN_AMERICA.ZHS16GBK"
4、添加环境变量
右键单击“我的电脑”-->“属性”-->“高级”-->“环境变量”-->“系统变量”-->选中“Path”-->“编辑”-->在“变量值”原来的数据后添加";D:/fox/instantclient"
5、重启计算机(经测试,按此顺序应该是不必重启的)。
6、查询Oracle数据库部分代码:
当然此代码的运行的基础:在此开发项目中——>添加引用——>.NET选项卡,选取System.Data.OracleClient.dll。
并在此cs开头添加:using System.Data.OracleClient;//引用Oracle连接类
private void button8_Click(object sender, System.EventArgs e)
{
try
{
OracleConnection cnn=new OracleConnection("Data Source=orcl1;User ID=方案名;Password=密码");
cnn.Open();
OracleDataAdapter myDa =new OracleDataAdapter();
myDa.SelectCommand = new OracleCommand("select * from /"表名/"",cnn); //查询时,表名用双引号括起来
DataSet myDs =new DataSet();
myDa.Fill(myDs);
this.textBox1.Text=myDs.Tables[0].Rows[0][0].ToString();//得到查询表的第一行第一列
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
以上就是我的不装Oracle客户端连Oracle数据库的办法。
如果有更简洁的请留言。。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lhg0302/archive/2009/04/11/4062569.aspx