:wpf连接Oracle数据库有很多方法,这里先说明一种。

1. 背景及版本说明

vs版本:2017
框架:.Net Framwork 4.5.2

2. 步骤

1. 首先,我们需要一个Oracle.ManagedDataAccess.dll 封装文件,这个文件的获取地址:http://xiazai.jb51.net/201908/yuanma/Oracle.ManagedDataAccess(jb51net).rar
下载解压后找到里面的Oracle.ManagedDataAccess.dll文件,一会儿要用到

2. 在自己的wpf项目中新建一个文件,我这里叫dll文件,把刚刚的Oracle.ManagedDataAccess.dll文件复制到这个文件夹下,如图所示。

WPF 使用ODBC连接ACCESS wpf连接数据库_System


然后右键wpf项目中的引用,选择“添加引用”,找到dll文件中的Oracle.ManagedDataAccess.dll,确定添加进来,添加后效果如下图

WPF 使用ODBC连接ACCESS wpf连接数据库_c#_02


MyOracleConnect.cs 文件

WPF 使用ODBC连接ACCESS wpf连接数据库_WPF 使用ODBC连接ACCESS_03


MyOracleConnect.cs 文件里的代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//引入命名空间
using Oracle.ManagedDataAccess.Client;
using System.Data;

namespace WpfApp1
{
    class MyOracleConnect
    {
        //Oracle连接字符串
        private static string strconn = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=orcl)));Persist Security Info=True;User ID=XXX;Password=XXXXXX;";

        public DataTable QueryDt(string sql)
        {
            using (OracleConnection conn = new OracleConnection(strconn))
            {
                try
                {
                    if (conn.State != ConnectionState.Open)
                    {
                        conn.Open();
                    }
                    OracleDataAdapter adap = new OracleDataAdapter(sql, conn);
                    DataTable dt = new DataTable();
                    adap.Fill(dt);
                    Console.WriteLine("连接成功");
                    return dt;
                }
                catch (Exception ex)
                {
                    Console.WriteLine("连接异常——>" + ex.Message);
                    return null;
                }
                finally
                {
                    conn.Close();
                }
            }
        }
  }
}

注意里面绿色的这个代码 localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=orcl)));Persist Security Info=True;User ID=XXX;Password=XXXXXX;”,
这里标红的5个地方是需要自己更改的,第一个是数据库的ip地址,我这里是本地电脑的数据库,所以写了localhost;第二个是端口号,第三个是服务器名,第四个是你Oracle的用户名,第五个是用户名对应的密码。

4. MainWindow.xaml代码如下:

<Window x:Class="WpfApp1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApp1"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <StackPanel>
        <Button Name="button1" Content="从数据库读取数据并显示" Click="button1_Click" />

    </StackPanel>
</Window>

5. MainWindow.xaml.cs代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Data;
 
namespace WpfApplication20190917D
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
 
        private List<Student> studentList;
 
        public MainWindow()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            string strSql = "select * from \"CUG_OPCTag\"";
            MyOracleConnect moc = new MyOracleConnect();
            DataTable dt = moc.QueryDt(strSql);
        }
    }
}

注意里面绿色的这个代码 “select * from “CUG_OPCTag””;", 这句话是sql语句,
这里标的 CUG_OPCTag,是我自己数据库里的一张表格,你自己数据库有什么表,就写一个表名就行,注意,Oracle调用表名时的sql语句,表名要用双引号。

6. 最后启动wpf项目即可,运行结果:点击界面的按钮后如下,只要能成功在控制台显示"连接成功"即可。

如果不知道怎么启动后在控制台显示,参考我上篇文章的设置,很简单:

最后结果如图

WPF 使用ODBC连接ACCESS wpf连接数据库_数据库_04


即最后连接成功。

注:这只是其中一种用了Oracle.ManagedDataAccess.dll文件的方法,但是还有用其他dll文件的方法,一样可以连接。