WPF連接Oracle數據庫


前言

最近想要實現一個簡單的桌面端記賬工具,想到了使用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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM