From 4def8cd23af03fe64238e31d055af4e27d2c97cb Mon Sep 17 00:00:00 2001 From: SummmerLost <1449109960@qq.com> Date: Mon, 20 Feb 2023 11:24:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=93=8D=E4=BD=9C=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=E7=9A=84helper?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PEIS/Helper/SqlHelper.cs | 270 +++++++++++++++++++++++++++++++++++++++ PEIS/PEIS.csproj | 2 +- 2 files changed, 271 insertions(+), 1 deletion(-) create mode 100644 PEIS/Helper/SqlHelper.cs diff --git a/PEIS/Helper/SqlHelper.cs b/PEIS/Helper/SqlHelper.cs new file mode 100644 index 0000000..651280e --- /dev/null +++ b/PEIS/Helper/SqlHelper.cs @@ -0,0 +1,270 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Data.SqlClient; +using System.Dynamic; +using System.Linq; + +namespace WomenAndChildren.Helper.SqlServer +{ + public class SqlHelper + { + public static readonly string ConnectString = ConfigurationManager.AppSettings["ConnectString"]; + private SqlConnection _con; + private SqlCommand _cmd; + + private SqlDataAdapter _sda; + private SqlDataReader _sdr; + private DataSet _ds; + private DataView _dv; + + public static SqlConnection GetConnection()//定义成静态的,很重要! + { + return new SqlConnection(ConnectString); + } + /// + /// 打开数据库连接 + /// + public void OpenDataBase() + { + _con = new SqlConnection(ConnectString); + _con.Open(); + } + /// + /// 关闭数据库连接 + /// + public void CloseDataBase() + { + + _con.Close(); + _con.Dispose(); + + } + + /// + /// 返回DataSet数据集 + /// + /// 数据库查询字符串 + /// + /// DataSet + public DataSet GetDs(string sqlStr, string tableName) + { + OpenDataBase(); + _sda = new SqlDataAdapter(sqlStr, _con); + _ds = new DataSet(); + _sda.Fill(_ds, tableName); + CloseDataBase(); + return _ds; + } + public DataView GetDv(string sqlStr) + { + OpenDataBase(); + _sda = new SqlDataAdapter(sqlStr, _con); + _ds = new DataSet(); + _sda.Fill(_ds); + _dv = _ds.Tables[0].DefaultView; + CloseDataBase(); + return _dv; + + } + /// + /// 返回Datareader对象 + /// + /// 查询字符串 + /// 返回值 + public SqlDataReader GetDataReader(string sqlString) + { + OpenDataBase(); + _cmd = new SqlCommand(sqlString, _con); + _sdr = _cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection); + + return _sdr; + + + } + public DataSet DataSet(string sql) + { + SqlConnection con = new SqlConnection(ConnectString); + SqlCommand cmd = new SqlCommand(sql, con); + SqlDataAdapter da = new SqlDataAdapter(cmd); + DataSet ds = null; + try + { + con.Open(); + ds = new DataSet(); + da.Fill(ds); + + } + catch (SqlException ex) + { + throw ex; + } + catch (Exception ex) + { + throw ex; + } + finally + { + con.Close(); + } + return ds; + } + + public static DataTable DataTable(string sql) + { + if (string.IsNullOrEmpty(sql)) + return new DataTable(); + var con = new SqlConnection(ConnectString); + var cmd = new SqlCommand(sql, con); + var da = new SqlDataAdapter(cmd); + DataTable ds = null; + try + { + con.Open(); + ds = new DataTable(); + da.Fill(ds); + + } + catch (SqlException ex) + { + throw ex; + } + catch (Exception ex) + { + throw ex; + } + finally + { + con.Close(); + } + return ds; + } + + public static DataTable DataTable(string sql,string connectString) + { + if (string.IsNullOrEmpty(sql)) + return new DataTable(); + var con = new SqlConnection(connectString); + var cmd = new SqlCommand(sql, con); + cmd.CommandTimeout = 180; + var da = new SqlDataAdapter(cmd); + DataTable ds = null; + try + { + con.Open(); + ds = new DataTable(); + da.Fill(ds); + + } + catch (SqlException ex) + { + throw ex; + } + catch (Exception ex) + { + throw ex; + } + finally + { + con.Close(); + } + return ds; + } + + public static List Entity(string sql,string connectString) + { + return ConvertDataTableToEntity(DataTable(sql,connectString)); + } + + public static List Entity(string sql) + { + return ConvertDataTableToEntity(DataTable(sql)); + } + public static List Entity(string sql) + { + return ConvertDataTableToEntity(DataTable(sql)); + } + /// + /// 执行Sql语句方法没有返回值 + /// + /// 传入的查询参数 + public void RunSql(string sqlStr) + { + OpenDataBase(); + _cmd = new SqlCommand(sqlStr, _con); + _cmd.ExecuteNonQuery(); + CloseDataBase(); + } + /// + /// 返回查询结果的首行首列 + /// + /// 查询字符串 + /// 返回结果 + public string ReturnSql(string sqlStr) + { + OpenDataBase(); + string returnSql; + try + { + _cmd = new SqlCommand(sqlStr, _con); + returnSql = _cmd.ExecuteScalar().ToString(); + } + catch(Exception ex) + { + throw ex; + } + + CloseDataBase(); + return returnSql; + } + + public static List ConvertDataTableToEntity(DataTable dt) + { + return (from DataRow row in dt.Rows select GetItem(row)).ToList(); + } + + public static T GetItem(DataRow dr) + { + var temp = typeof(T); + var obj = Activator.CreateInstance(); + + foreach (DataColumn column in dr.Table.Columns) + { + foreach (var pro in temp.GetProperties()) + { + if (string.Equals(pro.Name, column.ColumnName.Replace("_", string.Empty), StringComparison.CurrentCultureIgnoreCase)) + { + if (dr[column.ColumnName] is DBNull) + { + pro.SetValue(obj, default, null); + continue; + } + pro.SetValue(obj, dr[column.ColumnName], null); + if (dr[column.ColumnName] is string) + pro.SetValue(obj, Convert.ToString(dr[column.ColumnName]).Trim(), null); + } + else + continue; + } + } + return obj; + } + + public static List ConvertDataTableToEntity(DataTable dt) + { + return (from DataRow row in dt.Rows select GetItem(row)).ToList(); + } + + public static ExpandoObject GetItem(DataRow dr) + { + dynamic dynamicEntity = new ExpandoObject(); + foreach (DataColumn column in dr.Table.Columns) + { + (dynamicEntity as IDictionary).Add(column.ColumnName, (dr[column.ColumnName] is string)? dr[column.ColumnName].ToString().Trim(): dr[column.ColumnName]); + } + + return dynamicEntity; + } + } +} diff --git a/PEIS/PEIS.csproj b/PEIS/PEIS.csproj index 034ae11..f412fd7 100644 --- a/PEIS/PEIS.csproj +++ b/PEIS/PEIS.csproj @@ -44,6 +44,7 @@ + Form @@ -72,7 +73,6 @@ -