using HelperDB; using Oracle.ManagedDataAccess.Client; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Windows.Forms; namespace AIMSExtension { public static class HisDBHelper { private static string _ConnectionString = new XmlUse(Application.StartupPath + "\\AIMS.xml").GetNode("HisConnectionStringOracel")[0].ToString(); private static OracleConnection mConnection; /// /// 得到一个已经Open的Connection连接对象 /// public static OracleConnection Connection { get { if (mConnection == null) { mConnection = new OracleConnection(_ConnectionString); } if (mConnection.State == ConnectionState.Broken) { mConnection.Close(); mConnection.Open(); } if (mConnection.State == ConnectionState.Closed) { mConnection.Open(); } return mConnection; } } /// /// 执行sql操作(增、删、改) /// /// sql语句 /// 执行的记录数 public static int ExecNonQuery(string sql) { OracleCommand cmd = new OracleCommand(sql, Connection); return cmd.ExecuteNonQuery(); } /// /// 执行sql操作(增、删、改),以参数方式传值 /// /// sql语句 /// 参数数组 /// 执行的记录数 public static int ExecNonQuery(string sql, params SqlParameter[] values) { OracleCommand cmd = new OracleCommand(sql, Connection); cmd.Parameters.AddRange(values); return cmd.ExecuteNonQuery(); } /// /// 执行sql查询,得到单个值 /// /// 得到单个值的sql查询语句 /// 单个值对象 public static object ExecuteScalar(string safeSql) { OracleCommand cmd = new OracleCommand(safeSql, Connection); return cmd.ExecuteScalar(); } /// /// 执行sql查询,得到单个值,以参数方式传值 /// /// 得到单个值的sql查询语句 /// 参数数组 /// 单个值对象 public static object ExecuteScalar(string safeSql, params SqlParameter[] values) { OracleCommand cmd = new OracleCommand(safeSql, Connection); cmd.Parameters.AddRange(values); return cmd.ExecuteScalar(); } /// /// 执行sql查询,得到一个DataReader对象 /// /// sql查询语句 /// DataReader对象 public static OracleDataReader GetDataReader(string sql) { OracleCommand cmd = new OracleCommand(sql, Connection); OracleDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection); return reader; } /// /// 执行sql查询,得到一个DataReader对象,以参数方式传值 /// /// sql查询语句 /// 参数数组 /// DataReader对象 public static OracleDataReader GetDataReader(string sql, params SqlParameter[] values) { OracleCommand cmd = new OracleCommand(sql, Connection); cmd.Parameters.AddRange(values); OracleDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection); return reader; } /// /// 执行sql查询,得到一个DataTable对象 /// /// sql查询语句 /// DataTable public static DataTable GetDataTable(string sql) { OracleDataAdapter da = new OracleDataAdapter(sql, Connection); DataSet ds = new DataSet(); da.Fill(ds); return ds.Tables[0]; } /// /// 执行sql查询,得到一个DataTable对象,以参数方式传值 /// /// sql查询语句 /// 参数数组 /// DataTable public static DataTable GetDataTable(string sql, params SqlParameter[] values) { OracleDataAdapter da = new OracleDataAdapter(sql, Connection); da.SelectCommand.Parameters.AddRange(values); DataSet ds = new DataSet(); da.Fill(ds); return ds.Tables[0]; } /// /// 执行sql查询,得到一个DataSet对象 /// /// sql查询语句 /// DataSet public static DataSet GetDataSet(string sql) { OracleDataAdapter da = new OracleDataAdapter(sql, Connection); DataSet ds = new DataSet(); da.Fill(ds); return ds; } /// /// 执行sql查询,得到一个DataSet对象,以参数方式传值 /// /// sql查询语句 /// 参数数组 /// DataSet public static DataSet GetDataSet(string sql, params SqlParameter[] values) { OracleDataAdapter da = new OracleDataAdapter(sql, Connection); da.SelectCommand.Parameters.AddRange(values); DataSet ds = new DataSet(); da.Fill(ds); return ds; } /// /// 事务 /// /// /// public static bool ExecuteTrasaction(string sqlStr) { bool result = true; OracleTransaction tran = null; try { tran = Connection.BeginTransaction(); OracleCommand cmd = new OracleCommand(sqlStr, Connection); cmd.ExecuteNonQuery(); tran.Commit(); result = true; } catch { tran.Rollback(); result = false; } return result; } /// /// 事务 /// /// /// public static bool ExecuteTrasaction(List sqlStr) { bool result = true; OracleTransaction tran = null; try { tran = Connection.BeginTransaction(); for (int i = 0; i < sqlStr.Count; i++) { OracleCommand cmd = new OracleCommand(sqlStr[i], Connection); cmd.ExecuteNonQuery(); } tran.Commit(); result = true; } catch { tran.Rollback(); result = false; } return result; } /// /// 拆箱获得int /// /// /// public static int GetInt(object obj) { return (int)obj; } /// /// 拆箱获得float /// /// /// public static float GetFloat(object obj) { return (float)obj; } /// /// 拆箱获得double /// /// /// public static double GetDouble(object obj) { return (double)obj; } /// /// 拆箱获得long /// /// /// public static long GetLong(object obj) { return (long)obj; } /// /// 拆箱获得decimal /// /// /// public static decimal GetDecimal(object obj) { return (decimal)obj; } /// /// 拆箱获得bool /// /// /// public static bool GetBoolean(object obj) { return (bool)obj; } /// /// 拆箱获得DateTime /// /// /// public static DateTime GetDateTime(object obj) { return (DateTime)obj; } /// /// 拆箱获得string /// /// /// public static string GetString(object obj) { return obj + ""; } public static DateTime SystemDate() { string sqlStr = "select getdate() as SysDate"; DataTable dt = GetDataTable(sqlStr); return DateTime.Parse(DateTime.Parse(dt.Rows[0]["SysDate"].ToString()).ToString("yyyy-MM-dd HH:mm:ss")); } } }