C#简单连接Oracle数据库

1、添加依赖库引用:

在这里插入图片描述

2、编写帮助类库

using Oracle.ManagedDataAccess.Client;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;

namespace DB_Helper4Oracle
{
    public class oracle_helper
    {
        public string ip = "";
        public ushort port = 1521;
        public string user = "";
        public string pass = "";
        public string service_name = "";
        /// <summary>
        /// 出错信息
        /// </summary>
        public string err = "0";

        /// <summary>
        /// 读数据库
        /// </summary>
        /// <param name="sql_str">传递SQL语句</param>
        /// <returns>返回DataTable,err = "0"成功;否则失败,原因查看:err</returns>
        public DataTable DB_Read(string sql_str)
        {
            DataTable dt = new DataTable();
            try
            {
                using (OracleConnection db_conn = new OracleConnection($@"Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST={ip})(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME={service_name})));User Id={user};Password={pass};"))
                {
                    db_conn.Open();
                    using (OracleCommand db_Command = new OracleCommand(sql_str, db_conn))
                    {
                        OracleDataAdapter db_Adapter = new OracleDataAdapter(db_Command);
                        db_Adapter.Fill(dt);
                        db_conn.Close();
                    }
                }
                err = "0";
            }
            catch (Exception ex)
            {
                dt = null;
                err = $@"读数据失败,原因:{ex.Message},SQL:{sql_str}";
            }
            return dt;
        }

        /// <summary>
        /// 写数据库
        /// </summary>
        /// <param name="sql_str">传递SQL语句</param>
        /// <returns>true:成功;false:失败,原因查看:err</returns>
        public bool DB_Write(string sql_str)
        {
            try
            {
                using (OracleConnection db_conn = new OracleConnection($@"Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST={ip})(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME={service_name})));User Id={user};Password={pass};"))
                {
                    db_conn.Open();
                    using (OracleCommand db_Command = new OracleCommand(sql_str, db_conn))
                    {
                        db_Command.ExecuteNonQuery();
                    }
                    db_conn.Close();
                }
                err = "0";
                return true;
            }
            catch (Exception ex)
            {
                err = $@"写数据失败,原因:{ex.Message},SQL:{sql_str}";
                return false;
            }
        }

        public string GetLastErr()
        {
            return err;
        }

    }
}

3、调用测试

  private void Form1_Load(object sender, EventArgs e)
        {
            db = new oracle_helper()
            {
                ip = "*.*.*.*",
                port = 1521,
                user = "***",
                pass = "***",
                service_name = "***"
            };
            //敏感数据已做隐藏,根据实际项目填写即可
            string cph = "冀D***";
            DataTable dt = db.DB_Read($@"
SELECT * FROM V_CGJC WHERE CAR_NO='{cph}'
");
            MessageBox.Show(db.GetLastErr()); ;
            dataGridView1.DataSource = null;
            dataGridView1.DataSource = dt;
        }

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lzl640

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值