最近一項目,要寫成一個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