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

posted @ 2020-01-21 00:09  织墨  阅读(1126)  评论(0编辑  收藏  举报