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 @@
-