1.首先打开vs开发工具创建一个窗体项目,我这边以vs2013为列子,取名OracleDemo,如下图

在这里插入图片描述

2.在窗体上画上几个控件如下图所示,一共五个button按钮,一个dataGridView用来显示数据使用,如下图

在这里插入图片描述

3.下面是重点,我们在项目中新加一个类,取名叫做OracleHelpher.cs用来封装数据库操作类,使用前请先引用如下,不然无法调用

在这里插入图片描述


封装的类的具体代码如下:封装了四个方法,分别对应Oracle数据库的增删改查,
不熟的童鞋可以直接复制使用。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.OracleClient;

namespace dataDemo
{
    public class OracleHelpher
    {
        public static string connectString = "User ID=sluser;Password=sljtyy_88888888;Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST =AHSL)(PORT =1521))) (CONNECT_DATA = (SERVICE_NAME = slkm3)))";
        #region 数据库连接
        public static OracleConnection DbConn(ref string message, ref Boolean re)
        {
            //数据库的连接的方式
            OracleConnection conn;
            re = false;
            message = "";
            conn = new OracleConnection(connectString);
            try
            {
                conn.Open();
                re = true;
            }
            catch (Exception ex)
            {
                message = "错误:" + ex.Message.ToString();
                re = false;
                return null;
            }
            finally
            {
                conn.Close();
            }

            return conn;
        }
        #endregion

        #region 增
        public static Boolean AddSql(string sql, ref string message)
        {
            bool re = false;
            try
            {
                OracleConnection conn = DbConn(ref message, ref re);
                if (conn == null)
                {
                    re = false;
                    message = "数据库连接对象为空";
                }
                else
                {
                    try
                    {
                        if (conn.State == ConnectionState.Closed)
                        {
                            conn.Open();
                        }
                    }
                    catch (Exception eee)
                    {
                        re = false;
                        message = eee.Message.ToString();
                    }
                    OracleCommand cmd = new OracleCommand(sql, conn);
                    int count = cmd.ExecuteNonQuery();
                    if (count > 0)
                    {
                        re = true;
                    }
                    else
                    {
                        re = false;
                        message = "数据插入失败";
                    }
                    cmd.Dispose();
                    conn.Close();
                }
            }
            catch (Exception ee)
            {
                re = false;
                message = "add数据出错,原因:" + ee.Message.ToString();
            }
            return re;
        }
        #endregion

        #region 删
        public static Boolean DeleteSql(string sql, ref string message)
        {
            bool re = false;
            try
            {
                OracleConnection conn = DbConn(ref message, ref re);
                if (conn == null)
                {
                    re = false;
                    message = "数据库连接对象为空";
                }
                else
                {
                    try
                    {
                        if (conn.State == ConnectionState.Closed)
                        {
                            conn.Open();
                        }
                    }
                    catch (Exception eee)
                    {
                        re = false;
                        message = eee.Message.ToString();
                    }
                    OracleCommand cmd = new OracleCommand(sql, conn);
                    int count = cmd.ExecuteNonQuery();
                    if (count > 0)
                    {
                        re = true;
                    }
                    else
                    {
                        re = false;
                        message = "数据删除失败";
                    }
                    cmd.Dispose();
                    conn.Close();
                }
            }
            catch (Exception ee)
            {
                re = false;
                message = "add数据出错,原因:" + ee.Message.ToString();
            }
            return re;
        }
        #endregion

        #region 改每次调用都会调用代码
        public static Boolean UpdateSql(string sql, ref string message)
        {
            bool re = false;
            try
            {
                OracleConnection conn = DbConn(ref message, ref re);
                if (conn == null)
                {
                    re = false;
                    message = "数据库连接对象为空";
                }
                else
                {
                    try
                    {
                        if (conn.State == ConnectionState.Closed)
                        {
                            conn.Open();
                        }
                    }
                    catch (Exception eee)
                    {
                        re = false;
                        message = eee.Message.ToString();
                    }
                    OracleCommand cmd = new OracleCommand(sql, conn);
                    int count = cmd.ExecuteNonQuery();
                    if (count > 0)
                    {
                        re = true;
                    }
                    else
                    {
                        re = false;
                        message = "数据更新失败";
                    }
                    cmd.Dispose();
                    conn.Close();
                }
            }
            catch (Exception ee)
            {
                re = false;
                message = "add数据出错,原因:" + ee.Message.ToString();
            }
            return re;
        }
        #endregion

        #region 查
        public static DataTable SelectSql(string sql, ref string message)
        {

            DataTable dt = null;
            OracleConnection conn;
            message = string.Empty;
            string err = "";
            bool re = false;
            try
            {
                conn = DbConn(ref err, ref re);
                if (conn == null)
                {
                    message = "数据库连接对象为空";
                    return null;
                }
                if (conn.State == ConnectionState.Closed)
                {
                    try
                    {
                        conn.Open();
                    }
                    catch (Exception ex)
                    {
                        message = ex.Message;
                        return null;
                    }
                }
            }
            catch (Exception ee)
            {
                message = "数据库连接失败,原因:" + ee.Message.ToString();
                return null;
            }
            try
            {
                OracleDataAdapter adapter = new OracleDataAdapter(sql, conn);
                DataSet set = new DataSet();
                adapter.Fill(set);
                dt = set.Tables[0];
                conn.Close();
                conn.Dispose();
                adapter.Dispose();
                set.Dispose();
            }
            catch (Exception ex)
            {
                message = ex.Message.ToString(); ;
            }
            return dt;
        }
        #endregion

    }
}

4.我们现在来开始编写 form的代码,第一测试下数据库是否连接正常按钮,并且撰写相关的代码

在测试Oracle数据库按钮中编写如下代码:
        private void button1_Click(object sender, EventArgs e)
        {

            try
            {
                OracleConnection conn = OracleHelpher.DbConn(ref message, ref re);
                if (re)
                {
                    MessageBox.Show("oracle数据库链接成功");
                }
                else
                {
                    MessageBox.Show("oracle数据库链接失败:" + message);
                }
            }
            catch (Exception ex)
            {

                MessageBox.Show("oracle数据库链接失败:" + ex);
            }
        }
我们来运行界面点击试一下效果,如下图

在这里插入图片描述

数据库连接成功,接下面我们来查询一些数据,在查询数据的按钮里面增加如下
代码,其中我这里查询的表是t_kc,你们可以根据自己的需要来修改
   private void button5_Click(object sender, EventArgs e)
     {
          string sql = string.Format("select * from t_kc");
          DataTable dt = OracleHelpher.SelectSql(sql, ref message);
            this.dataGridView1.DataSource = dt;
        }
我们 来运行一下看一下效果

在这里插入图片描述

这样数据库的数据就被我们取到了,同理怎加数据、删除数据、修改数据也是如此

5.总结

我们操作使用c#操作数据库的时候一定要把操作类封装起来,这样我们在后面的调取
时候就不需要特别麻烦就能取到数据了,同时一定要学会撰写sql语句,希望看到这篇文章后对你有一定的帮助,为了方便大家的学习,我把demo也上传了,有需要的同学可以自己下面哈!连接附在后面的!
https://download.csdn.net/download/qq_35620884/25415846

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐