using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Diagnostics; using System.Reflection; using System.Threading; using System.Windows.Forms; namespace AutoUpdateTool { public static class DBHelper { private static readonly string _ConnectionString = new XmlOperator(Application.StartupPath + "\\AIMS.xml").GetNode("ConnectionString")[0].ToString(); /// /// 执行sql操作(增、删、改) /// /// sql语句 /// 执行的记录数 public static int ExecNonQuery(string sql) { using (SqlConnection conn = new SqlConnection(_ConnectionString)) { if (conn.State != ConnectionState.Open) conn.Open(); using (SqlCommand cmd = conn.CreateCommand()) { cmd.Parameters.Clear(); cmd.CommandText = sql; return cmd.ExecuteNonQuery(); } } } /// /// 执行sql操作(增、删、改),以参数方式传值 /// /// sql语句 /// 参数数组 /// 执行的记录数 public static int ExecNonQuery(string sql, params SqlParameter[] values) { using (SqlConnection conn = new SqlConnection(_ConnectionString)) { if (conn.State != ConnectionState.Open) conn.Open(); using (SqlCommand 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 (SqlConnection conn = new SqlConnection(_ConnectionString)) { if (conn.State != ConnectionState.Open) conn.Open(); using (SqlCommand cmd = conn.CreateCommand()) { cmd.Parameters.Clear(); cmd.CommandText = safeSql; return cmd.ExecuteScalar(); } } } /// /// 执行sql查询,得到单个值,以参数方式传值 /// /// 得到单个值的sql查询语句 /// 参数数组 /// 单个值对象 public static object ExecuteScalar(string safeSql, params SqlParameter[] values) { using (SqlConnection conn = new SqlConnection(_ConnectionString)) { if (conn.State != ConnectionState.Open) conn.Open(); using (SqlCommand cmd = conn.CreateCommand()) { cmd.Parameters.Clear(); cmd.CommandText = safeSql; cmd.Parameters.AddRange(values); return cmd.ExecuteScalar(); } } } ///// ///// 执行sql查询,得到一个DataReader对象 ///// ///// sql查询语句 ///// DataReader对象 //public static SqlDataReader GetDataReader(string sql) //{ // using (SqlConnection conn = new SqlConnection(_ConnectionString)) // { // if (conn.State != ConnectionState.Open) // conn.Open(); // SqlCommand cmd = new SqlCommand(sql, conn); // SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection); // return reader; // } //} /// /// 执行sql查询,得到一个DataReader对象,以参数方式传值 /// /// sql查询语句 /// 参数数组 /// DataReader对象 public static SqlDataReader GetDataReader(string sql, params SqlParameter[] values) { using (SqlConnection conn = new SqlConnection(_ConnectionString)) { if (conn.State != ConnectionState.Open) conn.Open(); SqlCommand cmd = new SqlCommand(sql, conn); cmd.Parameters.AddRange(values); SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection); return reader; } } /// /// 执行sql查询,得到一个DataTable对象 /// /// sql查询语句 /// DataTable public static DataTable GetDataTable(string sql) { using (SqlConnection conn = new SqlConnection(_ConnectionString)) { if (conn.State != ConnectionState.Open) conn.Open(); DataSet ds = new DataSet(); SqlCommand cmd = new SqlCommand(sql, conn); SqlDataAdapter da = new SqlDataAdapter(cmd); da.Fill(ds); return ds.Tables[0]; } } /// /// 执行sql查询,得到一个DataTable对象,以参数方式传值 /// /// sql查询语句 /// 参数数组 /// DataTable public static DataTable GetDataTable(string sql, params SqlParameter[] values) { using (SqlConnection conn = new SqlConnection(_ConnectionString)) { if (conn.State != ConnectionState.Open) conn.Open(); DataSet ds = new DataSet(); SqlCommand cmd = new SqlCommand(sql, conn); if (values != null) cmd.Parameters.AddRange(values); SqlDataAdapter da = new SqlDataAdapter(cmd); try { da.Fill(ds); } catch (Exception) { } return ds.Tables[0]; } } /// /// 执行sql查询,得到一个DataSet对象 /// /// sql查询语句 /// DataSet public static DataSet GetDataSet(string sql) { using (SqlConnection conn = new SqlConnection(_ConnectionString)) { if (conn.State != ConnectionState.Open) conn.Open(); DataSet ds = new DataSet(); SqlCommand cmd = new SqlCommand(sql, conn); SqlDataAdapter da = new SqlDataAdapter(cmd); try { da.Fill(ds); } catch (Exception) { } return ds; } } /// /// 执行sql查询,得到一个DataSet对象,以参数方式传值 /// /// sql查询语句 /// 参数数组 /// DataSet public static DataSet GetDataSet(string sql, params SqlParameter[] values) { using (SqlConnection conn = new SqlConnection(_ConnectionString)) { if (conn.State != ConnectionState.Open) conn.Open(); DataSet ds = new DataSet(); SqlCommand cmd = new SqlCommand(sql, conn); if (values != null) cmd.Parameters.AddRange(values); SqlDataAdapter da = new SqlDataAdapter(cmd); try { da.Fill(ds); } catch (Exception) { } return ds; } } /// /// 事务 /// /// /// public static bool ExecuteTrasaction(string sqlStr) { bool result = true; using (SqlConnection conn = new SqlConnection(_ConnectionString)) { if (conn.State != ConnectionState.Open) conn.Open(); SqlTransaction tran = null; try { tran = conn.BeginTransaction("Tran"); SqlCommand cmd = new SqlCommand(sqlStr, conn, tran); cmd.ExecuteNonQuery(); tran.Commit(); result = true; } catch { tran.Rollback(); result = false; } } return result; } /// /// 事务 /// /// /// public static bool ExecuteTrasaction(List sqlStr) { bool result = true; using (SqlConnection conn = new SqlConnection(_ConnectionString)) { if (conn.State != ConnectionState.Open) conn.Open(); SqlTransaction tran = null; try { tran = conn.BeginTransaction("Tran"); for (int i = 0; i < sqlStr.Count; i++) { SqlCommand cmd = new SqlCommand(sqlStr[i], conn, tran); 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 SqlDataReader GetReader(string sql, params SqlParameter[] values) { SqlConnection connection = new SqlConnection(_ConnectionString); connection.Open(); SqlCommand cmd = new SqlCommand(sql, connection); cmd.Parameters.AddRange(values); SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection); return reader; } } }