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帮助类的更多相关文章

  1. asp.net core系列 43 Web应用 Session分布式存储(in memory与Redis)

    一.概述 HTTP 是无状态的协议. 默认情况下,HTTP 请求是不保留用户值或应用状态的独立消息. 本文介绍了几种保留请求间用户数据和应用状态的方法.下面以表格形式列出这些存储方式,本篇专讲Sess ...

  2. Navicat Premium 12 破解(MySQL、MariaDB、MongoDB、SQL Server、SQLite)

    打开注入到安装目录中的exe中 破解提示(还没好,继续看下去) 如果你安装的是中文版,选一下中文版(英文默认即可),获取一下key(名字和组织可以自定义) 打开Navicat,选择注册(第一次打开选注 ...

  3. Asp.net Core 系列之--2.ORM初探:Dapper实现MySql数据库各类操作

    ChuanGoing 2019-09-10 距离上一篇近一个月时间,断断续续才把本篇码完,后面将加快进度,争取年度内把本系列基本介绍完成,同时督促本人持续学习. 本篇学习曲线: 1.初识Dapper ...

  4. 技术的正宗与野路子 c#, AOP动态代理实现动态权限控制(一) 探索基于.NET下实现一句话木马之asmx篇 asp.net core 系列 9 环境(Development、Staging 、Production)

    黄衫女子的武功似乎与周芷若乃是一路,飘忽灵动,变幻无方,但举手抬足之间却是正而不邪,如说周芷若形似鬼魅,那黄衫女子便是态拟神仙. 这段描写出自<倚天屠龙记>第三十八回. “九阴神抓”本是& ...

  5. asp.net core 系列 20 EF基于数据模型创建数据库

    一.概述 本章使用 Entity Framework Core 构建执行基本数据访问的 ASP.NET Core MVC 应用程序.使用迁移(migrations)基于数据模型创建数据库,是一种cod ...

  6. Asp.net Core 系列之--3.领域、仓储、服务简单实现

    ChuanGoing 2019-11-11  距离上篇近两个月时间,一方面时因为其他事情耽搁,另一方面也是之前准备不足,关于领域驱动有几个地方没有想通透,也就没有继续码字.目前网络包括园子里大多领域驱 ...

  7. 【目录】asp.net core系列篇

    随笔分类 - asp.net core系列篇 asp.net core系列 68 Filter管道过滤器 摘要: 一.概述 本篇详细了解一下asp.net core filters,filter叫&q ...

  8. asp.net core系列 30 EF管理数据库架构--必备知识 迁移

    一.管理数据库架构概述 EF Core 提供两种主要方法来保持 EF Core 模型和数据库架构同步.一是以 EF Core 模型为基准,二是以数据库为基准. (1)如果希望以 EF Core 模型为 ...

  9. asp.net core系列 40 Web 应用MVC 介绍与详细示例

    一. MVC介绍 MVC架构模式有助于实现关注点分离.视图和控制器均依赖于模型. 但是,模型既不依赖于视图,也不依赖于控制器. 这是分离的一个关键优势. 这种分离允许模型独立于可视化展示进行构建和测试 ...

  10. asp.net core系列 39 Web 应用Razor 介绍与详细示例

    一. Razor介绍 在使用ASP.NET Core Web开发时, ASP.NET Core MVC 提供了一个新特性Razor. 这样开发Web包括了MVC框架和Razor框架.对于Razor来说 ...

随机推荐

  1. 「codeforces - 1481F」AB Tree

    link. 理一下逻辑,主要讲一下我做题时的疑惑和其它题解没提到的细节. 首先容易看到,一个必然不劣的贪心策略是把尽量靠近根的层铺成同样的字符.也许会有疑惑,字符串是否本质不同的判定每个位置地位相等. ...

  2. 在线问诊 Python、FastAPI、Neo4j — 创建 节点关系

    目录 关系:症状-检查 关系:疾病-症状 代码重构 relationship_data.csv 症状,检查,疾病,药品,宜吃,忌吃 "上下楼梯疼,不能久站,感觉有点肿"," ...

  3. vue上通过krpano.js实现360全景图

    首先贴出一些XML对应的函数,文件内容都有注释说明, 前端代码读取xml文件代码 // 初始化 window.embedpano({ xml: 0, target: 'pano', html5: 'o ...

  4. MySQL系列之——索引作用、索引的种类、B树、聚簇索引构建B树、辅助索引(S)构建B+树、辅助索引细分、索引树的高度、索引的基本管理、执行计划获取及分析、索引应用规范、优化器针对索引、问题汇总

    文章目录 一 索引作用 二 索引的种类(算法) 三 B树 基于不同的查找算法分类介绍 B 树 B+树 B*树 四 在功能上的分类 4.1 聚簇索引构建B树(簇就是区) 4.1.1 前提 4.1.2 作 ...

  5. PostgreSQL学习笔记-1.基础知识:创建、删除数据库和表格

    PostgreSQL 创建数据库 PostgreSQL 创建数据库可以用以下三种方式:1.使用 CREATE DATABASE SQL 语句来创建.2.使用 createdb 命令来创建.3.使用 p ...

  6. Intervals 题解

    Intervals 题目大意 给定 \(m\) 条形如 \((l_i,r_i,a_i)\) 的规则,你需要求出一个长为 \(n\) 的分数最大的 01 串的分数,其中一个 01 串 \(A\) 的分数 ...

  7. vue + tornado 个人博客项目简介

    vue + tornado 个人博客项目简介 项目链接:https://www.freepd.top 项目链接:https://admin.freepd.top 项目简介 首页预览 本站接入了百度ap ...

  8. 【日常收支账本】【Day03】完成编辑账本界面的新增动账记录功能——通过ElementTree加XPath实现

    一.项目地址 https://github.com/LinFeng-BingYi/DailyAccountBook 二.新增 1. 解析xml文件 1.1 功能详述 解析所设计的xml文件格式,并将所 ...

  9. FHQ_Treap学习笔记

    前置芝士(了解即可啦~):C++.BST 二叉搜索树.堆.二叉堆 Treap 的概念 Treap 树堆,即树(Tree)+堆(Heap),是一棵弱平衡的二叉搜索树(BST),能同时满足二叉搜索树与堆的 ...

  10. WPF --- 如何重写WPF原生控件样式

    引言 上一篇中 WPF --- 重写DataGrid样式,因新产品UI需要,重写了一下微软 WPF 原生的 DataGrid 的样式,包含如下内容: 基础设置,一些基本背景色,字体颜色等. 滚动条样式 ...