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. 【RocketMQ】顺序消息实现总结

    全局有序 在RocketMQ中,如果使消息全局有序,可以为Topic设置一个消息队列,使用一个生产者单线程发送数据,消费者端也使用单线程进行消费,从而保证消息的全局有序,但是这种方式效率低,一般不使用 ...

  2. MASA MAUI iOS 文件下载与断点续传

    @ 目录 背景 介绍 方案及代码 1.新建MAUI项目 2.建立NSUrlSession会话连接 3.使用NSUrlSessionDownloadTask 创建下载任务 4.DidWriteData ...

  3. The method dismissDialog(int) from the type Activity is deprecated

    The method showDialog(int) from the type Activity is deprecated in android?   up vote6down votefavor ...

  4. 【matplotlib 实战】--堆叠柱状图

    堆叠柱状图,是一种用来分解整体.比较各部分的图.与柱状图类似,堆叠柱状图常被用于比较不同类别的数值.而且,它的每一类数值内部,又被划分为多个子类别,这些子类别一般用不同的颜色来指代. 柱状图帮助我们观 ...

  5. IDEA工具第一篇:细节使用-习惯设置

    安装好Idea后,直接上手clone代码进入编码时代,有没有那么一刻你会觉用起来没有那么顺手流畅呢? 下面是关于 [Windows] 下安装idea的一些习惯设置[ Mac大致一样 ] 一.修改系统文 ...

  6. [CISCN 2019华东南]Web11

    看到下面connection 里面的内容有一点像抓包出来的 就抓包试试 似乎感觉也没有什么用 看到这个东西,那么就想到改IP 添加X-Forwarded-For:127.0.0.1 发现这个IP随着我 ...

  7. Java基础知识1-10

    测试要点 一.Java基础 1.常用设计模式有哪些?在项目中有哪里用的到?单例中懒汉饿汉优缺点? 软件设计模式分为三类分别为创建型.结构型.行为型. 1.1创建型 1.1.1单例模式(singleto ...

  8. docker入门加实战—部署Java和前端项目

    docker入门加实战-部署Java和前端项目 部署之前,先删除nginx,和自己创建的dd两个容器: docker rm -f nginx dd 部署Java项目 作为演示,我们的Java项目比较简 ...

  9. 6.使用leetcode去练习语言

    目录 1 本章预览 2 简单题举例 2.1 题目描述 2.2 题目解析 2.3 题解 2.4 涉及基础语法 3 中等题举例 3.1 题目描述 3.2 题目解析 3.3 题解 3.4 涉及基础语法 4 ...

  10. 配置Linux使用ssh私钥登录

    友情提示,该操作最好先保留密码登录的方式,等测试私钥可以登录了再根据需要关闭密码登录权限,以免引起不必要的麻烦!!! 一.服务器生成公钥和私钥 1.1.生成公钥和私钥 authorized_keys: ...