前言
最近想要實現一個簡單的桌面端記賬工具,想到了使用wpf進行開發,於是今天花點時間研究了一下與數據庫的連接
開發工具
VS2019,.net framework 4.7,Oracle 11.2
具體步驟
Oracle的配置
oracle的安裝和下載不用多說,度娘上很多類似的教程,這里就先跳過了。
安裝好后,開始創建用戶,並給其分配相應的表空間:進入sqlplus(按下win鍵后直接數據sqlplus就可以進入了),輸入用戶名sys,密碼默認是change_on_install as sysdba(你沒看錯,真的是這么長),進入如下界面
然后進行分配表空間,創建角色和把空間分配給對應的角色,這里可以參照這位大佬的:Oracle起步---創建臨時表空間/表空間/創建用戶/授權
這里要注意的是創建表空間的時候是要創建兩個的,一個是臨時表空間,一個是實際表空間,這里不做過多贅述,上面的大佬寫的很清楚。我這里定義了一個用戶manageruser,密碼是123456,這個待會會用到。
調用數據庫代碼的編寫
數據庫的角色建好了,那么就要在wpf中編寫相應代碼來調用了,編寫如下代碼:
public static class DBHelper { private static string connectionString = "Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))) (CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = orcl)));User ID = manageuser; Password=123456;"; public static void Connect() { OracleConnection oracleConnection = new OracleConnection(connectionString); try { oracleConnection.Open(); MessageBox.Show("連接成功", "提示"); } catch (Exception) { MessageBox.Show("連接失敗", "提示"); throw; } finally { oracleConnection.Close(); } } }
插入這段代碼后,可能會在OracleConnection那里提示缺少命名空間的引用,根據vs的建議引用了
using System.Data.OracleClient;
之后,它又會提示這個方法是過時的,如圖:
這不神經病嗎(小聲逼逼),這種方法其實是沒問題的,換個命名空間引用就可以了,這里可以參照這位大佬的:System.Data.OracleClient.OracleConnection已過時
即在oracle安裝目錄下找到Oracle.Dataaccess.dll,將其添加引用,然后再把原來引用的命名空間換成 usingOracle.DataAccess.Client; 就可以了。
這里再多說一句,上面代碼中的connectionString是由三個部分組成的,oracle連接地址,登錄用戶名,登錄密碼,第一個oracle連接地址可以在oracle安裝目錄下的product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora 中找到:
端口號啥的新手不建議改,改了會比較麻煩。
登錄用戶名和登錄密碼就是上面創建角色時新建的用戶名和密碼。
測試
配置工作已經完成了,跑一下試試
成功啦 *^-^*!
PS:如果運行過程中出現了報錯:【未能加載文件或程序集“Oracle.DataAccess, Version=2.112.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342”或它的某一個依賴項。試圖加載格式不正確的程序】,可以參照這位大佬的解決方案:未能加載文件或程序集“Oracle.DataAccess, Version=2.112.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342"
參考資料:
1.https://www.cnblogs.com/ZXdeveloper/p/5140416.html
2.https://www.cnblogs.com/xmaomao/p/3273102.html
3.https://blog.csdn.net/qq_39704682/article/details/91376440
4.https://www.cnblogs.com/wangfuyou/p/5976558.html