C#使用第三方驱动连接oracle数据库

准备驱动:Oracle.ManagedDataAccess.dll 可以点我下载或者去官网搜索下载

注意:每次导入的包的时候,别弄错啦,是这个:using Oracle.ManagedDataAccess.Client;

封装类如下:

using System;
using System.Data;
using System.Windows.Forms;
using Oracle.ManagedDataAccess.Client;

namespace hsBankZjdzManager.Utils
{
    /// <summary>
    /// oracle数据库连接公共类
    /// </summary>
    public class SQLConnPublicToOracleClass
    {
        public static string connStr = "User Id=" + GlobalVariabelClass.sqlServerMessageDic["uidName"] + ";Password=" + GlobalVariabelClass.sqlServerMessageDic["password"] + ";Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=" + GlobalVariabelClass.sqlServerMessageDic["serverUrl"] + ")(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=" + GlobalVariabelClass.sqlServerMessageDic["databaseName"] + ")))";

        public static OracleConnection conn = null;

        //打开数据库连接
        public static bool Open()
        {
            //从配置文件中获取连接字符串
            conn = new OracleConnection(connStr);
            try
            {
                conn.Open();
                return true;
            }
            catch (System.Exception ex)
            {
                MessageBox.Show(ex.Message);
                return false;
            }
        }

        /// <summary>
        /// 查询
        /// </summary>
        /// <param name="sql"></param>
        /// <returns></returns>
        public static OracleDataReader Oracle_Select(string sql)
        {
            try
            {
                OracleCommand cmd = conn.CreateCommand();
                cmd.CommandText = sql;
                OracleDataReader dtr = cmd.ExecuteReader();
                return dtr;
            }
            catch (System.Exception ex)
            {
                MessageBox.Show(ex.ToString());
                return null;
            }
        }

        /// <summary>
        /// 增删改
        /// </summary>
        /// <param name="sql"></param>
        /// <returns></returns>
        public static int Oracle_Insdelupd(string sql)
        {
            int num = 0;
            try
            {
                OracleCommand oc = new OracleCommand(sql, conn);
                num = oc.ExecuteNonQuery();
                return num;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
                return num;
            }
        }

        /// <summary>
        /// 关闭数据库连接
        /// </summary>
        public static void Close()
        {
            if (conn != null)
            {
                conn.Close();
                conn.Dispose();
                conn = null;
            }
        }
    }
}

调用示例:

private static ILog logger = LogManager.GetLogger(typeof(LoginSQL));

/// <summary>
/// 检查用户名和密码是否正确
/// </summary>
/// <returns></returns>
public UserInfo checkUser(string fName)
{
    UserInfo userInfo1 = null;
    // 建立数据库连接
    if (SQLConnPublicToOracleClass.conn == null)
    {
        SQLConnPublicToOracleClass.Open();
    }
    try
    {
        string strQuery = "select * from tUser where FNAME='"+ fName + "'";
        OracleDataReader commQueryRead = SQLConnPublicToOracleClass.Oracle_Select(strQuery);
        if (commQueryRead.HasRows)
        {
            while (commQueryRead.Read())
            {
                userInfo1 = new UserInfo();
                userInfo1.fID = int.Parse(commQueryRead["FID"].ToString());
                userInfo1.fName = commQueryRead["FName"].ToString();
                userInfo1.fPass = commQueryRead["FPass"].ToString();
                userInfo1.fTypeID = commQueryRead["FTypeID"].ToString();
                userInfo1.fBan = commQueryRead["FBan"].ToString();
                userInfo1.fNote = commQueryRead["FNote"].ToString();
            }
        }
        commQueryRead.Close();
    }
    catch (SqlException ex)
    {
        MessageBox.Show(ex.Message);
        logger.Error("检查用户名和密码是否正确失败:" + ex.Message);
    }
    finally
    {
        // 关闭打开的连接 
        if (SQLConnPublicToOracleClass.conn != null)
        {
            SQLConnPublicToOracleClass.Close();
        }
    }
    return userInfo1;
}

/// <summary>
/// 用户修改密码
/// </summary>
/// <param name="userInfo">原用户信息</param>
/// <param name="newPass">新密码</param>
/// <returns></returns>
public int updateDataPass(UserInfo userInfo,string newPass)
{
    int count = 0;
    // 建立数据库连接
    if (SQLConnPublicToOracleClass.conn == null)
    {
        SQLConnPublicToOracleClass.Open();
    }
    try
    {
        string strQuery = "update tUser set FPass = '"+ newPass + "' where FName = '"+ userInfo.fName+ "' and FPass = '"+ userInfo.fPass+ "'";
        count = SQLConnPublicToOracleClass.Oracle_Insdelupd(strQuery);
    }
    catch (SqlException e1)
    {
        logger.Error("用户修改密码失败:" + e1.Message);
        MessageBox.Show("用户修改密码失败:" + e1.Message, "出现错误");
    }
    finally
    {
        // 关闭打开的连接 
        if (SQLConnPublicToOracleClass.conn != null)
        {
            SQLConnPublicToOracleClass.Close();
        }
    }
    return count;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

哎呦喂O_o嗨

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

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

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

打赏作者

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

抵扣说明:

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

余额充值