当我们决定使用.Net Core开发的时候,就放弃使用SqlServer的打算吧。那应该选择哪个数据库呢?一般选择MySql的比较多。

接下来我们来演示在.Net Core中使用MySQL吧。

1、原生模式(不要忘记安装 MySql.Data )

    class Users
{
public int Id { get; set; }
public string Name { get; set; }
public string UserName { get; set; }
public string Password { get; set; }
public string Email { get; set; }
}
        static void Main(string[] args)
{
var connString = "server=192.168.254.135;userid=root;pwd=123456;port=3306;database=Sample;SslMode=none;";
string sql = "SELECT * FROM Users";
List<Users> users = new List<Users>();
using (MySqlConnection conn = new MySqlConnection(connString))
{
conn.Open();
using (MySqlCommand cmd = new MySqlCommand(sql, conn))
{
MySqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
users.Add(new Users
{
Id = Convert.ToInt32(dr["Id"]),
Name = dr["Name"].ToString(),
UserName = dr["UserName"].ToString(),
Password = dr["Password"].ToString(),
Email = dr["Email"].ToString(),
});
}
}
}
users.ForEach(u =>
{
Console.WriteLine($"{u.Id}. 姓名:{u.Name},用户名:{u.UserName}");
}); Console.ReadKey();
}

结果如下:

2、MySqlHelper类:MySql.Data命名空间下为我们封装好了一个MySqlHelper类,一些基本常用的操作都给我们封装好了

        static void Main(string[] args)
{
var connString = "server=192.168.254.135;userid=root;pwd=123456;port=3306;database=Sample;SslMode=none;";
string sql = "INSERT INTO Users(Name,UserName,Password,Email) VALUES ('tangsan','tangsan','123456','55@qq.com')";
List<Users> users = new List<Users>();
int result = MySqlHelper.ExecuteNonQuery(connString, sql);
Console.WriteLine($"result={result}");
sql = "SELECT * FROM Users";
MySqlDataReader dr = MySqlHelper.ExecuteReader(connString, sql);
while (dr.Read())
{
users.Add(new Users
{
Id = Convert.ToInt32(dr["Id"]),
Name = dr["Name"].ToString(),
UserName = dr["UserName"].ToString(),
Password = dr["Password"].ToString(),
Email = dr["Email"].ToString(),
});
}
users.ForEach(u =>
{
Console.WriteLine($"{u.Id}. 姓名:{u.Name},用户名:{u.UserName}");
});
Console.ReadKey();

结果如下:

由上面的代码可以看出,动作查询还是很方便的,但是查询一个集合的时候还是挺麻烦的,接下来我们用Dapper来试试吧:

我们可以看出这个类是没有扩展方法的,现在我们打开NuGet安装包安装Dapper后再来看看

这就是Dapper为MySqlConnection类封装的扩展类。

        static void Main(string[] args)
{
var connString = "server=192.168.254.135;userid=root;pwd=123456;port=3306;database=Sample;SslMode=none;";
string sql = "SELECT * FROM Users";
IEnumerable<Users> users = new List<Users>();
{
using (MySqlConnection conn = new MySqlConnection(connString))
{
conn.Open();
users= conn.Query<Users>(sql);
}
users.ToList().ForEach(u =>
{
Console.WriteLine($"{u.Id}. 姓名:{u.Name},用户名:{u.UserName}");
});
}
Console.ReadKey();
}

结果如下:

.net core系列之《.net core中使用MySql以及Dapper》的更多相关文章

  1. .net core系列之《.net core内置IOC容器ServiceCollection》

    一.IOC介绍 IOC:全名(Inversion of Control)-控制反转 IOC意味着我们将对象的创建控制权交给了外部容器,我们不管它是如何创建的,我们只需要知道,当我们想要某个实例时,我们 ...

  2. Asp.Net Core 内置IOC容器的理解

    Asp.Net Core 内置IOC容器的理解 01.使用IOC容器的好处 对接口和实现类由原来的零散式管理,到现在的集中式管理. 对类和接口之间的关系,有多种注入模式(构造函数注入.属性注入等). ...

  3. net core体系-web应用程序-4net core2.0大白话带你入门-8asp.net core 内置DI容器(DependencyInjection,控制翻转)的一点小理解

    asp.net core 内置DI容器的一点小理解   DI容器本质上是一个工厂,负责提供向它请求的类型的实例. .net core内置了一个轻量级的DI容器,方便开发人员面向接口编程和依赖倒置(IO ...

  4. NET Core 3.0 AutoFac替换内置DI的新姿势

    原文:NET Core 3.0 AutoFac替换内置DI的新姿势 .NET Core 3.0 和 以往版本不同,替换AutoFac服务的方式有了一定的变化,在尝试着升级项目的时候出现了一些问题. 原 ...

  5. 浏览器扩展系列————给MSTHML添加内置脚本对象【包括自定义事件】

    原文:浏览器扩展系列----给MSTHML添加内置脚本对象[包括自定义事件] 使用场合: 在程序中使用WebBrowser或相关的控件如:axWebBrowser等.打开本地的html文件时,可以在h ...

  6. 简单讲解Asp.Net Core自带IOC容器ServiceCollection

    一.  理解ServiceCollection之前先要熟悉几个概念:DIP.IOC.DI.Ioc容器: 二.  接下来先简单说一下几个概念问题: 1.DIP(依赖倒置原则):六大设计原则里面一种设计原 ...

  7. ASP.NET Core 2.1 : 十二.内置日志、使用Nlog将日志输出到文件

    应用离不开日志,虽然现在使用VS有强大的调试功能,开发过程中不复杂的情况懒得输出日志了(想起print和echo的有木有),但在一些复杂的过程中以及应用日常运行中的日志还是非常有用. ASP.NET ...

  8. asp.net core 内置DI容器的一点小理解

    DI容器本质上是一个工厂,负责提供向它请求的类型的实例. .net core内置了一个轻量级的DI容器,方便开发人员面向接口编程和依赖倒置(IOC). 具体体现为Micorosoft.Extensio ...

  9. 学习笔记:GLSL Core Tutorial – Vertex Shader(内置变量说明)

    1.每个Vertex Shader都有用户定义的输入属性,例如:位置,法线向量和纹理坐标等.Vertex Shaders也接收一致变量(uniform variables). uniform vari ...

  10. .net core 2.0学习记录(三):内置IOC与DI的使用

    本篇的话介绍下IOC和ID的含义以及如何使用.Net Core中的DI. 一.我是这么理解IOC和DI的: IOC:没有用IOC之前是直接new实例来赋值,使用IOC之后是通过在运行的时候根据配置来实 ...

随机推荐

  1. DB2 Check Pending Script

    转载 http://www.zinox.com/archives/144 Thanks to Max Petrenko of DB2 Toronto Lab for sharing a very us ...

  2. Tomcat服务器安装配置

    1.到http://tomcat.apache.org/官网下载Tomcat的zip版本,这样直接解压就行了,不用安装.我下载是Tomcat6.0版本的zip文件,解压在D:\Java\apache- ...

  3. UTF8最好不要带BOM,附许多经典评论

    UTF-8 不需要 BOM,尽管 Unicode 标准允许在 UTF-8 中使用 BOM.所以不含 BOM 的 UTF-8 才是标准形式,在 UTF-8 文件中放置 BOM 主要是微软的习惯(顺便提一 ...

  4. Tomcat开发Comet要点

    Comet技术的悄然流行,Jetty在比较早地支持了Comet,提供了Comet 的Servlet,同样从Tomcat6开始,Comet已经在Tomcat的标准Servlet中开始支持了,这是个好事情 ...

  5. rails 中 create, new, build, save 的用法以及误区汇总 (转)

    自己很初级,初级的不能再初级,所以初次接触rails的时候,对于里面的create,new,build等方法不是很了解,用的很混乱,导致经常出现不必要的bug,很苦恼,决定,总结一下,结合网上已有资源 ...

  6. 每天一道剑指offer-二叉树的下一个结点

    题目 每天一道剑指offer-二叉树的下一个结点 https://www.nowcoder.com/practice/ef068f602dde4d28aab2b210e859150a?tpId=13& ...

  7. C#、OC递归锁

    做ios也有1年了,C#的东西有些都忘记了,最近几天也打算重温一下,不能学了ios把C#给抛弃了,两者都要抓,一精多专.目前C#只是重温,重点是web这块.今天主要是想起了之前做过的面试题,虽然题比较 ...

  8. WCF-终结点之消息路由示例

    一. 在前一章中主要介绍了服务端的监听地址与逻辑地址.本节模拟消息转发机制来实际体验一把终结点的监听地址是如何使用的. 先下载一个叫做TcpTrace的小软件(108k),它能够截取端口消息,并转发消 ...

  9. 微信WeUI入门

    为帮助网页开发者实现与微信客户端一致的视觉体验,并降低设计和开发成本,微信团队推出了网页设计样式库:WeUI. 该样式库目前包含 button (按钮).cell (单元格).toast (浮层提示) ...

  10. php中的字符串常用函数(二) substr() 截取字符串

    //substr($str, startIndex, length) //截取方向都是从左向右的. //length不写默认截取到最后一个. //length为正是个数(包括开头的个数),为负是索引( ...