zoukankan      html  css  js  c++  java
  • C#不安装Oracle10g客户端连接Oracle10g数据库【转】

    最近一项目,要写成一个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

  • 相关阅读:
    自定义CollectionView实现流式布局和动态图片的展现
    Java设计模式之观察者模式
    HashMap工作原理
    SpringBoot 实现多线程
    十大排序算法
    IDEA集成 plant uml 画图工具
    解决国内访问github速度慢的问题
    SpringBoot整合JWT Token
    SpringBoot在idea中配置热部署
    Spring-Security教程【一】简单的登录认证
  • 原文地址:https://www.cnblogs.com/mikemao/p/1548183.html
Copyright © 2011-2022 走看看