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 - 1344D」Résumé Review

    link. 有点狗,但还算个好题. 设定 \(f_i(x)=a_ix-x^3\),\(\Delta_i(x)=f_i(x)-f_i(x-1)\),可以洞察到 \(\Delta_i(x)\) 在正自然数 ...

  2. std::copy与std::back_inserter引发的惨案

    #include <iostream> #include <vector> #include <numeric> #include <sstream> ...

  3. python第2~5章 code

    02基本语法 print('he\aaa\aaa') # 这是一个打印语句,请你看见了不要慌张# 这是一个注释# 注释会被解释器所忽略# print(123+456) 这行代码被注释了,将不会执行pr ...

  4. 【算法】游戏中的学习,使用c#面向对象特性控制游戏角色移动

    最近,小悦的生活像是一首繁忙的交响曲,每天忙得团团转,虽然她的日程安排得满满当当,但她并未感到充实.相反,她很少有时间陪伴家人,这让她感到有些遗憾.在周五的午后,小悦的哥哥突然打来电话,他的声音里充满 ...

  5. Android Studio里导入制作好的图片后,直接报错,图片名下方出现红色波浪线

    症状:Android Studio里导入制作好的图片后,直接报错,图片名下方出现红色波浪线. 比如:bk_Image_BackGround,报红 解决办法:如:bk_Image_BackGround, ...

  6. YXの每日挂分记录

    7.11 T1 不开两倍数组 100->60. 7.18 T2 dp+矩乘 转移不判边界 100->10. 7.20 T2 人类智慧 1e6 n log n 100->10,求前 5 ...

  7. 手算base64

    base64人类群星闪耀时 CSP2021考了-- 什么鬼-- 不得不大骂一声--您有毒吧 base64是什么 Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基 ...

  8. 洛谷1451(BFS)

    #include"bits/stdc++.h" using namespace std; int mp[110][110]; bool vis[110][110]; int dx[ ...

  9. Chromium CC渲染层工作流详解

    1. Chromium 的渲染流水线 Blink -> Paint -> Commit -> (Tiling ->) Raster -> Activate -> D ...

  10. vscode编写keil工程项目

    vscode 前言 1 安装vscode 2 安装插件 2.1 设置中文 2.2 安装Keil Assistant 2.3 常用安装 3 快捷键 前言 我使用vscode只是用来为了弥补keil编写的 ...