using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Text; using System.Configuration; using System.Windows.Forms; using Npgsql; using HelperDB; namespace AIMSExtension { public static class PGDBHelper { public static readonly string _ConnectionString = new XmlUse(Application.StartupPath + "\\AIMS.xml").GetNode("HisConnectionStringOracel")[0].ToString(); /// /// 执行sql操作(增、删、改) /// /// sql语句 /// 执行的记录数 public static int ExecNonQuery(string sql) { using (NpgsqlConnection conn = new NpgsqlConnection(_ConnectionString)) { if (conn.State != ConnectionState.Open) conn.Open(); using (NpgsqlCommand cmd = conn.CreateCommand()) { cmd.Parameters.Clear(); cmd.CommandText = sql; return cmd.ExecuteNonQuery(); } } } /// /// 执行sql操作(增、删、改),以参数方式传值 /// /// sql语句 /// 参数数组 /// 执行的记录数 public static int ExecNonQuery(string sql, params SqlParameter[] values) { using (NpgsqlConnection conn = new NpgsqlConnection(_ConnectionString)) { if (conn.State != ConnectionState.Open) conn.Open(); using (NpgsqlCommand cmd = conn.CreateCommand()) { cmd.Parameters.Clear(); cmd.CommandText = sql; cmd.Parameters.AddRange(values); return cmd.ExecuteNonQuery(); } } } /// /// 执行sql查询,得到单个值 /// /// 得到单个值的sql查询语句 /// 单个值对象 public static object ExecuteScalar(string safeSql) { using (NpgsqlConnection conn = new NpgsqlConnection(_ConnectionString)) { if (conn.State != ConnectionState.Open) conn.Open(); using (NpgsqlCommand cmd = conn.CreateCommand()) { cmd.Parameters.Clear(); cmd.CommandText = safeSql; return cmd.ExecuteScalar(); } } } /// /// 执行sql查询,得到单个值,以参数方式传值 /// /// 得到单个值的sql查询语句 /// 参数数组 /// 单个值对象 public static object ExecuteScalar(string safeSql, params SqlParameter[] values) { using (NpgsqlConnection conn = new NpgsqlConnection(_ConnectionString)) { if (conn.State != ConnectionState.Open) conn.Open(); using (NpgsqlCommand cmd = conn.CreateCommand()) { cmd.Parameters.Clear(); cmd.CommandText = safeSql; cmd.Parameters.AddRange(values); return cmd.ExecuteScalar(); } } } /// /// 执行sql查询,得到一个DataReader对象,以参数方式传值 /// /// sql查询语句 /// 参数数组 /// DataReader对象 public static NpgsqlDataReader GetDataReader(string sql, params SqlParameter[] values) { using (NpgsqlConnection conn = new NpgsqlConnection(_ConnectionString)) { if (conn.State != ConnectionState.Open) conn.Open(); NpgsqlCommand cmd = new NpgsqlCommand(sql, conn); cmd.Parameters.AddRange(values); NpgsqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection); return reader; } } /// /// 执行sql查询,得到一个DataTable对象 /// /// sql查询语句 /// DataTable public static DataTable GetDataTable(string sql) { using (NpgsqlConnection conn = new NpgsqlConnection(_ConnectionString)) { if (conn.State != ConnectionState.Open) conn.Open(); DataSet ds = new DataSet(); NpgsqlCommand cmd = new NpgsqlCommand(sql, conn); NpgsqlDataAdapter da = new NpgsqlDataAdapter(cmd); da.Fill(ds); return ds.Tables[0]; } } /// /// 执行sql查询,得到一个DataTable对象,以参数方式传值 /// /// sql查询语句 /// 参数数组 /// DataTable public static DataTable GetDataTable(string sql, params SqlParameter[] values) { using (NpgsqlConnection conn = new NpgsqlConnection(_ConnectionString)) { if (conn.State != ConnectionState.Open) conn.Open(); DataSet ds = new DataSet(); NpgsqlCommand cmd = new NpgsqlCommand(sql, conn); if (values != null) cmd.Parameters.AddRange(values); NpgsqlDataAdapter da = new NpgsqlDataAdapter(cmd); try { da.Fill(ds); } catch (Exception) { } return ds.Tables[0]; } } /// /// 执行sql查询,得到一个DataSet对象 /// /// sql查询语句 /// DataSet public static DataSet GetDataSet(string sql) { using (NpgsqlConnection conn = new NpgsqlConnection(_ConnectionString)) { if (conn.State != ConnectionState.Open) conn.Open(); DataSet ds = new DataSet(); NpgsqlCommand cmd = new NpgsqlCommand(sql, conn); NpgsqlDataAdapter da = new NpgsqlDataAdapter(cmd); try { da.Fill(ds); } catch (Exception) { } return ds; } } /// /// 执行sql查询,得到一个DataSet对象,以参数方式传值 /// /// sql查询语句 /// 参数数组 /// DataSet public static DataSet GetDataSet(string sql, params SqlParameter[] values) { using (NpgsqlConnection conn = new NpgsqlConnection(_ConnectionString)) { if (conn.State != ConnectionState.Open) conn.Open(); DataSet ds = new DataSet(); NpgsqlCommand cmd = new NpgsqlCommand(sql, conn); if (values != null) cmd.Parameters.AddRange(values); NpgsqlDataAdapter da = new NpgsqlDataAdapter(cmd); try { da.Fill(ds); } catch (Exception) { } return ds; } } /// /// 拆箱获得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")); } } }