准备驱动: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;
}