Asp .Net Core系列:基于MySQL的DBHelper帮助类和SQL Server的DBHelper帮助类
MySQLDBHelper
app.config中添加配置
<connectionStrings>
<add name="MySqlConn" connectionString="server=localhost;port=3306;user=root;password=123456;database=db1;SslMode=none"/>
</connectionStrings>
MySQLDBHelper
using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace Common
{
/// <summary>
/// 数据库操作类
/// </summary>
public class MySQLDBHelper
{
public readonly static string MySqlConn = ConfigurationManager.ConnectionStrings["MySqlConn"].ConnectionString.ToString();
/// <summary>
/// 执行增、删、改的方法:ExecuteNonQuery,返回true,false
/// </summary>
/// <param name="sql"></param>
/// <param name="pms"></param>
/// <returns></returns>
public static bool ExecuteNonQuery(string sql, MySqlParameter[] pms)
{
using (MySqlConnection conn = new MySqlConnection(MySqlConn))
{
conn.Open();
using (MySqlTransaction transaction = conn.BeginTransaction())
{
using (MySqlCommand cmd = new MySqlCommand(sql, conn))
{
if (pms != null && pms.Length > 0)
{
cmd.Parameters.AddRange(pms);
}
int rows = cmd.ExecuteNonQuery();
transaction.Commit();
return rows > 0;
}
}
}
}
/// <summary>
/// 执行增、删、改的方法:ExecuteNonQuery,返回true,false
/// </summary>
/// <param name="sql"></param>
/// <param name="pms"></param>
/// <returns></returns>
public static bool ExecuteNonQuery(string sql, Dictionary<string, object> pms)
{
MySqlParameter[] parameters = null;
if (pms != null && pms.Count > 0)
{
parameters = DictionaryToMySqlParameters(pms).ToArray();
}
return ExecuteNonQuery(sql, parameters);
}
/// <summary>
/// 执行增、删、改的方法:ExecuteNonQuery,返回true,false
/// </summary>
/// <param name="sql"></param>
/// <param name="pms"></param>
/// <returns></returns>
public static bool ExecuteNonQuery(string sql)
{
return ExecuteNonQuery(sql, new MySqlParameter[] { });
}
/// <summary>
/// 将查出的数据装到实体里面,返回一个List
/// </summary>
/// <param name="sql"></param>
/// <param name="pms"></param>
/// <returns></returns>
public static List<T> ExecuteQuery<T>(string sql, MySqlParameter[] pms) where T : new()
{
using (var connection = new MySqlConnection(MySqlConn))
{
connection.Open();
using (var command = new MySqlCommand(sql, connection))
{
if (pms != null && pms.Length > 0)
{
command.Parameters.AddRange(pms);
}
using (var reader = command.ExecuteReader())
{
List<T> tList = new List<T>();
while (reader.Read()) // 遍历结果集中的每一行数据
{
var t = ConvertToModel<T>(reader);
tList.Add(t);
}
return tList;
}
}
}
}
/// <summary>
/// 将查出的数据装到实体里面,返回一个List
/// </summary>
/// <param name="sql"></param>
/// <param name="pms"></param>
/// <returns></returns>
public static List<T> ExecuteQuery<T>(string sql, Dictionary<string, object> pms) where T : new()
{
MySqlParameter[] parameters = null;
if (pms != null)
{
parameters = DictionaryToMySqlParameters(pms).ToArray();
}
return ExecuteQuery<T>(sql, parameters);
}
/// <summary>
/// 将查出的数据装到实体里面,返回一个List
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static List<T> ExecuteQuery<T>(string sql) where T : new()
{
return ExecuteQuery<T>(sql, new MySqlParameter[] { });
}
/// <summary>
/// 将查出的数据装到实体里面,返回一个实体
/// </summary>
/// <param name="sql"></param>
/// <param name="pms"></param>
/// <returns></returns>
public static T ExecuteQueryOne<T>(string sql, MySqlParameter[] pms) where T : new()
{
using (var connection = new MySqlConnection(MySqlConn))
{
connection.Open();
using (var command = new MySqlCommand(sql, connection))
{
if (pms != null && pms.Length > 0)
{
command.Parameters.AddRange(pms);
}
using (var reader = command.ExecuteReader())
{
while (reader.Read()) // 遍历结果集中的每一行数据
{
var t = ConvertToModel<T>(reader);
return t;
}
return default(T);
}
}
}
}
/// <summary>
/// 将查出的数据装到实体里面,返回一个实体
/// </summary>
/// <param name="sql"></param>
/// <param name="pms"></param>
/// <returns></returns>
public static T ExecuteQueryOne<T>(string sql, Dictionary<string, object> pms) where T : new()
{
MySqlParameter[] parameters = null;
if (pms != null && parameters.Length > 0)
{
parameters = DictionaryToMySqlParameters(pms).ToArray();
}
return ExecuteQueryOne<T>(sql, parameters);
}
/// <summary>
/// 将查出的数据装到实体里面,返回一个实体
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="sql"></param>
/// <returns></returns>
public static T ExecuteQueryOne<T>(string sql) where T : new()
{
return ExecuteQueryOne<T>(sql, new MySqlParameter[] { });
}
/// <summary>
/// 将查出的数据装到table里,返回一个DataTable
/// </summary>
/// <param name="sql"></param>
/// <param name="pms"></param>
/// <returns></returns>
public DataTable ExecuteQueryDataTable(string sql, MySqlParameter[] pms = null)
{
DataTable dt = new DataTable();
using (MySqlDataAdapter adapter = new MySqlDataAdapter(sql, MySqlConn))
{
if (pms != null)
{
adapter.SelectCommand.Parameters.AddRange(pms);
}
adapter.Fill(dt);
}
return dt;
}
/// <summary>
/// 将查出的数据装到table里,返回一个DataTable
/// </summary>
/// <param name="sql"></param>
/// <param name="pms"></param>
/// <returns></returns>
public DataTable ExecuteQueryDataTable(string sql, Dictionary<string, object> pms)
{
MySqlParameter[] parameters = null;
if (pms != null)
{
parameters = DictionaryToMySqlParameters(pms).ToArray();
}
return ExecuteQueryDataTable(sql, parameters);
}
/// <summary>
/// 将查出的数据装到table里,返回一个DataTable
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public DataTable ExecuteQueryDataTable(string sql)
{
MySqlParameter[] parameters = null;
return ExecuteQueryDataTable(sql, parameters);
}
/// <summary>
/// 字典转MySqlParameters
/// </summary>
/// <param name="parameters"></param>
/// <returns></returns>
public static List<MySqlParameter> DictionaryToMySqlParameters(Dictionary<string, object> parameters)
{
List<MySqlParameter> MySqlParameters = new List<MySqlParameter>();
foreach (var kvp in parameters)
{
string parameterName = kvp.Key;
object parameterValue = kvp.Value;
// 创建 MySqlParameter 对象
MySqlParameter MySqlParameter = new MySqlParameter(parameterName, parameterValue);
MySqlParameters.Add(MySqlParameter);
}
return MySqlParameters;
}
/// <summary>
/// 按列名转换(单条使用比较方便)
/// </summary>
/// <param name="reader"></param>
/// <returns></returns>
public static T ConvertToModel<T>(MySqlDataReader reader) where T : new()
{
T t = new T();
PropertyInfo[] propertys = t.GetType().GetProperties();
List<string> drColumnNames = new List<string>();
for (int i = 0; i < reader.FieldCount; i++)
{
drColumnNames.Add(reader.GetName(i));
}
foreach (PropertyInfo pi in propertys)
{
if (drColumnNames.Contains(pi.Name))
{
if (!pi.CanWrite)
{
continue;
}
var value = reader[pi.Name];
if (value != DBNull.Value)
{
pi.SetValue(t, value, null);
}
}
}
return t;
}
}
}
MSSQLDBHelper
app.config中添加配置
<connectionStrings>
<add name="SqlConn" connectionString="Server=127.0.0.1;Database=db1;UserId=sa;Password=123456;"/>
</connectionStrings>
MSSQLDBHelper
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace Common
{
/// <summary>
/// 数据库帮助类
/// </summary>
public class MSSQLDBHelper
{
public readonly static string SqlConn = ConfigurationManager.ConnectionStrings["SqlConn"].ConnectionString.ToString();
/// <summary>
/// 执行增、删、改的方法:ExecuteNonQuery,返回true,false
/// </summary>
/// <param name="sql"></param>
/// <param name="pms"></param>
/// <returns></returns>
public static bool ExecuteNonQuery(string sql, SqlParameter[] pms)
{
using (SqlConnection conn = new SqlConnection(SqlConn))
{
conn.Open();
using (SqlTransaction transaction = conn.BeginTransaction())
{
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
if (pms != null && pms.Length > 0)
{
cmd.Parameters.AddRange(pms);
}
int rows = cmd.ExecuteNonQuery();
transaction.Commit();
return rows > 0;
}
}
}
}
/// <summary>
/// 执行增、删、改的方法:ExecuteNonQuery,返回true,false
/// </summary>
/// <param name="sql"></param>
/// <param name="pms"></param>
/// <returns></returns>
public static bool ExecuteNonQuery(string sql, Dictionary<string, object> pms)
{
SqlParameter[] parameters = null;
if (pms != null && pms.Count > 0)
{
parameters = DictionaryToSqlParameters(pms).ToArray();
}
return ExecuteNonQuery(sql, parameters);
}
/// <summary>
/// 执行增、删、改的方法:ExecuteNonQuery,返回true,false
/// </summary>
/// <param name="sql"></param>
/// <param name="pms"></param>
/// <returns></returns>
public static bool ExecuteNonQuery(string sql)
{
return ExecuteNonQuery(sql, new SqlParameter[] { });
}
/// <summary>
/// 将查出的数据装到实体里面,返回一个List
/// </summary>
/// <param name="sql"></param>
/// <param name="pms"></param>
/// <returns></returns>
public static List<T> ExecuteQuery<T>(string sql, SqlParameter[] pms) where T : new()
{
using (var connection = new SqlConnection(SqlConn))
{
connection.Open();
using (var command = new SqlCommand(sql, connection))
{
if (pms != null && pms.Length > 0)
{
command.Parameters.AddRange(pms);
}
using (var reader = command.ExecuteReader())
{
List<T> tList = new List<T>();
while (reader.Read()) // 遍历结果集中的每一行数据
{
var t = ConvertToModel<T>(reader);
tList.Add(t);
}
return tList;
}
}
}
}
/// <summary>
/// 将查出的数据装到实体里面,返回一个List
/// </summary>
/// <param name="sql"></param>
/// <param name="pms"></param>
/// <returns></returns>
public static List<T> ExecuteQuery<T>(string sql, Dictionary<string, object> pms) where T : new()
{
SqlParameter[] parameters = null;
if (pms != null)
{
parameters = DictionaryToSqlParameters(pms).ToArray();
}
return ExecuteQuery<T>(sql, parameters);
}
/// <summary>
/// 将查出的数据装到实体里面,返回一个List
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static List<T> ExecuteQuery<T>(string sql) where T : new()
{
return ExecuteQuery<T>(sql, new SqlParameter[] { });
}
/// <summary>
/// 将查出的数据装到实体里面,返回一个实体
/// </summary>
/// <param name="sql"></param>
/// <param name="pms"></param>
/// <returns></returns>
public static T ExecuteQueryOne<T>(string sql, SqlParameter[] pms) where T : new()
{
using (var connection = new SqlConnection(SqlConn))
{
connection.Open();
using (var command = new SqlCommand(sql, connection))
{
if (pms != null && pms.Length > 0)
{
command.Parameters.AddRange(pms);
}
using (var reader = command.ExecuteReader())
{
while (reader.Read()) // 遍历结果集中的每一行数据
{
var t = ConvertToModel<T>(reader);
return t;
}
return default(T);
}
}
}
}
/// <summary>
/// 将查出的数据装到实体里面,返回一个实体
/// </summary>
/// <param name="sql"></param>
/// <param name="pms"></param>
/// <returns></returns>
public static T ExecuteQueryOne<T>(string sql, Dictionary<string, object> pms) where T : new()
{
SqlParameter[] parameters = null;
if (pms != null && parameters.Length > 0)
{
parameters = DictionaryToSqlParameters(pms).ToArray();
}
return ExecuteQueryOne<T>(sql, parameters);
}
/// <summary>
/// 将查出的数据装到实体里面,返回一个实体
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="sql"></param>
/// <returns></returns>
public static T ExecuteQueryOne<T>(string sql) where T : new()
{
return ExecuteQueryOne<T>(sql, new SqlParameter[] { });
}
/// <summary>
/// 将查出的数据装到table里,返回一个DataTable
/// </summary>
/// <param name="sql"></param>
/// <param name="pms"></param>
/// <returns></returns>
public DataTable ExecuteQueryDataTable(string sql, SqlParameter[] pms = null)
{
DataTable dt = new DataTable();
using (SqlDataAdapter adapter = new SqlDataAdapter(sql, SqlConn))
{
if (pms != null)
{
adapter.SelectCommand.Parameters.AddRange(pms);
}
adapter.Fill(dt);
}
return dt;
}
/// <summary>
/// 将查出的数据装到table里,返回一个DataTable
/// </summary>
/// <param name="sql"></param>
/// <param name="pms"></param>
/// <returns></returns>
public DataTable ExecuteQueryDataTable(string sql, Dictionary<string, object> pms)
{
SqlParameter[] parameters = null;
if (pms != null)
{
parameters = DictionaryToSqlParameters(pms).ToArray();
}
return ExecuteQueryDataTable(sql, parameters);
}
/// <summary>
/// 将查出的数据装到table里,返回一个DataTable
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public DataTable ExecuteQueryDataTable(string sql)
{
SqlParameter[] parameters = null;
return ExecuteQueryDataTable(sql, parameters);
}
/// <summary>
/// 字典转SqlParameters
/// </summary>
/// <param name="parameters"></param>
/// <returns></returns>
public static List<SqlParameter> DictionaryToSqlParameters(Dictionary<string, object> parameters)
{
List<SqlParameter> SqlParameters = new List<SqlParameter>();
foreach (var kvp in parameters)
{
string parameterName = kvp.Key;
object parameterValue = kvp.Value;
// 创建 SqlParameter 对象
SqlParameter SqlParameter = new SqlParameter(parameterName, parameterValue);
SqlParameters.Add(SqlParameter);
}
return SqlParameters;
}
/// <summary>
/// 按列名转换(单条使用比较方便)
/// </summary>
/// <param name="reader"></param>
/// <returns></returns>
public static T ConvertToModel<T>(SqlDataReader reader) where T : new()
{
T t = new T();
PropertyInfo[] propertys = t.GetType().GetProperties();
List<string> drColumnNames = new List<string>();
for (int i = 0; i < reader.FieldCount; i++)
{
drColumnNames.Add(reader.GetName(i));
}
foreach (PropertyInfo pi in propertys)
{
if (drColumnNames.Contains(pi.Name))
{
if (!pi.CanWrite)
{
continue;
}
var value = reader[pi.Name];
if (value != DBNull.Value)
{
pi.SetValue(t, value, null);
}
}
}
return t;
}
}
}
Asp .Net Core系列:基于MySQL的DBHelper帮助类和SQL Server的DBHelper帮助类的更多相关文章
- asp.net core系列 43 Web应用 Session分布式存储(in memory与Redis)
一.概述 HTTP 是无状态的协议. 默认情况下,HTTP 请求是不保留用户值或应用状态的独立消息. 本文介绍了几种保留请求间用户数据和应用状态的方法.下面以表格形式列出这些存储方式,本篇专讲Sess ...
- Navicat Premium 12 破解(MySQL、MariaDB、MongoDB、SQL Server、SQLite)
打开注入到安装目录中的exe中 破解提示(还没好,继续看下去) 如果你安装的是中文版,选一下中文版(英文默认即可),获取一下key(名字和组织可以自定义) 打开Navicat,选择注册(第一次打开选注 ...
- Asp.net Core 系列之--2.ORM初探:Dapper实现MySql数据库各类操作
ChuanGoing 2019-09-10 距离上一篇近一个月时间,断断续续才把本篇码完,后面将加快进度,争取年度内把本系列基本介绍完成,同时督促本人持续学习. 本篇学习曲线: 1.初识Dapper ...
- 技术的正宗与野路子 c#, AOP动态代理实现动态权限控制(一) 探索基于.NET下实现一句话木马之asmx篇 asp.net core 系列 9 环境(Development、Staging 、Production)
黄衫女子的武功似乎与周芷若乃是一路,飘忽灵动,变幻无方,但举手抬足之间却是正而不邪,如说周芷若形似鬼魅,那黄衫女子便是态拟神仙. 这段描写出自<倚天屠龙记>第三十八回. “九阴神抓”本是& ...
- asp.net core 系列 20 EF基于数据模型创建数据库
一.概述 本章使用 Entity Framework Core 构建执行基本数据访问的 ASP.NET Core MVC 应用程序.使用迁移(migrations)基于数据模型创建数据库,是一种cod ...
- Asp.net Core 系列之--3.领域、仓储、服务简单实现
ChuanGoing 2019-11-11 距离上篇近两个月时间,一方面时因为其他事情耽搁,另一方面也是之前准备不足,关于领域驱动有几个地方没有想通透,也就没有继续码字.目前网络包括园子里大多领域驱 ...
- 【目录】asp.net core系列篇
随笔分类 - asp.net core系列篇 asp.net core系列 68 Filter管道过滤器 摘要: 一.概述 本篇详细了解一下asp.net core filters,filter叫&q ...
- asp.net core系列 30 EF管理数据库架构--必备知识 迁移
一.管理数据库架构概述 EF Core 提供两种主要方法来保持 EF Core 模型和数据库架构同步.一是以 EF Core 模型为基准,二是以数据库为基准. (1)如果希望以 EF Core 模型为 ...
- asp.net core系列 40 Web 应用MVC 介绍与详细示例
一. MVC介绍 MVC架构模式有助于实现关注点分离.视图和控制器均依赖于模型. 但是,模型既不依赖于视图,也不依赖于控制器. 这是分离的一个关键优势. 这种分离允许模型独立于可视化展示进行构建和测试 ...
- asp.net core系列 39 Web 应用Razor 介绍与详细示例
一. Razor介绍 在使用ASP.NET Core Web开发时, ASP.NET Core MVC 提供了一个新特性Razor. 这样开发Web包括了MVC框架和Razor框架.对于Razor来说 ...
随机推荐
- 「codeforces - 1481F」AB Tree
link. 理一下逻辑,主要讲一下我做题时的疑惑和其它题解没提到的细节. 首先容易看到,一个必然不劣的贪心策略是把尽量靠近根的层铺成同样的字符.也许会有疑惑,字符串是否本质不同的判定每个位置地位相等. ...
- 在线问诊 Python、FastAPI、Neo4j — 创建 节点关系
目录 关系:症状-检查 关系:疾病-症状 代码重构 relationship_data.csv 症状,检查,疾病,药品,宜吃,忌吃 "上下楼梯疼,不能久站,感觉有点肿"," ...
- vue上通过krpano.js实现360全景图
首先贴出一些XML对应的函数,文件内容都有注释说明, 前端代码读取xml文件代码 // 初始化 window.embedpano({ xml: 0, target: 'pano', html5: 'o ...
- MySQL系列之——索引作用、索引的种类、B树、聚簇索引构建B树、辅助索引(S)构建B+树、辅助索引细分、索引树的高度、索引的基本管理、执行计划获取及分析、索引应用规范、优化器针对索引、问题汇总
文章目录 一 索引作用 二 索引的种类(算法) 三 B树 基于不同的查找算法分类介绍 B 树 B+树 B*树 四 在功能上的分类 4.1 聚簇索引构建B树(簇就是区) 4.1.1 前提 4.1.2 作 ...
- PostgreSQL学习笔记-1.基础知识:创建、删除数据库和表格
PostgreSQL 创建数据库 PostgreSQL 创建数据库可以用以下三种方式:1.使用 CREATE DATABASE SQL 语句来创建.2.使用 createdb 命令来创建.3.使用 p ...
- Intervals 题解
Intervals 题目大意 给定 \(m\) 条形如 \((l_i,r_i,a_i)\) 的规则,你需要求出一个长为 \(n\) 的分数最大的 01 串的分数,其中一个 01 串 \(A\) 的分数 ...
- vue + tornado 个人博客项目简介
vue + tornado 个人博客项目简介 项目链接:https://www.freepd.top 项目链接:https://admin.freepd.top 项目简介 首页预览 本站接入了百度ap ...
- 【日常收支账本】【Day03】完成编辑账本界面的新增动账记录功能——通过ElementTree加XPath实现
一.项目地址 https://github.com/LinFeng-BingYi/DailyAccountBook 二.新增 1. 解析xml文件 1.1 功能详述 解析所设计的xml文件格式,并将所 ...
- FHQ_Treap学习笔记
前置芝士(了解即可啦~):C++.BST 二叉搜索树.堆.二叉堆 Treap 的概念 Treap 树堆,即树(Tree)+堆(Heap),是一棵弱平衡的二叉搜索树(BST),能同时满足二叉搜索树与堆的 ...
- WPF --- 如何重写WPF原生控件样式
引言 上一篇中 WPF --- 重写DataGrid样式,因新产品UI需要,重写了一下微软 WPF 原生的 DataGrid 的样式,包含如下内容: 基础设置,一些基本背景色,字体颜色等. 滚动条样式 ...