1. 程式人生 > >C#不安裝Oracle客戶端連線Oracle資料庫

C#不安裝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資料庫的辦法。