经常用到数据库,于是总结了一个较实用的数据库工具类,oracle外其他数据库也是可以借鉴的。 主要分为两个部分: 1.创建数据库对象。调用本类其他方法都需要用到这个对象。 2.操作数据。为数据安全,有事务处理,为节省资源,每次操作都有开、闭连接,高并发情况需要自行优化修改 public static class DBUtil { #region 创建数据库对象 /// <summary> /// 有参oracle数据库连接 /// </summary> /// <param name="connBean"></param> /// <returns>OracleConnection实例或null</returns> public static OracleConnection OpenOracleConn(DbConnBean connBean) { if (connBean == null) return null; OracleConnection conn = null; try{ String connStr = string.Format( "Data Source=(DESCRIPTION=" + "(ADDRESS=(PROTOCOL=TCP)(HOST={0})(PORT={1}))" + "(CONNECT_DATA=(SERVICE_NAME={2})));" + "User Id={3};Password={4};", connBean.Host, connBean.Port, connBean.Servername, connBean.User, connBean.Pass); conn = new OracleConnection(connStr); } catch (Exception e) { Console.WriteLine("失败连接oracle:" + e); return null; } return conn; } #endregion #region 数据操作 /// <summary> /// 查询 oracle数据库共用方法 /// </summary> /// <param name="sql"></param> /// <returns></returns> public static DataTable selectOracle(String sql, OracleConnection oracleconn) { DataTable dt = null; try { if (OpenOracleConn(oracleconn) == 1) { OracleCommand cmd = new OracleCommand(sql, oracleconn); cmd.CommandType = CommandType.Text; DataSet ds = new DataSet(); OracleDataAdapter da = new OracleDataAdapter(); da.SelectCommand = cmd; da.Fill(ds);//将结果集填入 dt = ds.Tables[0]; } } catch (Exception e) { Console.WriteLine("oracle查询失败:"+e); } finally { oracleconn.Close(); } return dt; } /// <summary> /// 更新 oracle数据库共用方法(事务) /// </summary> /// <param name="sql"></param> /// <param name="oracleconn"></param> /// <returns> /// 0执行失败 /// 1执行成功 /// </returns> public static int insertUpdateOracle(String sql, OracleConnection oracleconn, List<OracleParameter> plist) { OracleCommand cmd = null; try { cmd = new OracleCommand(sql, oracleconn); foreach (OracleParameter op in plist) cmd.Parameters.Add(op); if (OpenOracleConn(oracleconn) == 1) { cmd.Transaction = oracleconn.BeginTransaction(); cmd.CommandType = CommandType.Text; cmd.ExecuteNonQuery(); cmd.Transaction.Commit(); return 1; } } catch (Exception e) { Console.WriteLine("oracle更新失败:" + e); cmd.Transaction.Rollback(); } finally { oracleconn.Close(); } return 0; } #endregion #region 打开连接 /// <summary> /// 打开oracle数据库 /// </summary> /// <param name="conn"></param> /// <returns> /// 0失败 /// 1成功 /// </returns> public static int OpenOracleConn(OracleConnection conn) { try { //打开连接 conn.Open(); //如果当前状态打开,在控制台输出 if (conn.State == ConnectionState.Open) { Console.WriteLine("成功连接oracledb:" + conn.ConnectionString); return 1; } else return 0; } catch (Exception e) { Console.WriteLine("打开oracle数据库失败:"+e); return 0; } } #endregion #region 关闭连接 /// <summary> /// 关闭oracle数据库连接 /// </summary> /// <param name="conn"></param> public static void CloseOracleConn(OracleConnection conn) { if (conn == null) { return; } try { if (conn.State != ConnectionState.Closed) { conn.Close(); } } catch (Exception e) { Console.WriteLine(e.Message); } finally { conn.Dispose(); } } #endregion }
数据库实用工具类
猜你喜欢
转载自cs666666.iteye.com/blog/2206982
今日推荐
周排行