当我们决定使用.Net Core开发的时候,就放弃使用SqlServer的打算吧。那应该选择哪个数据库呢?一般选择MySql的比较多。
接下来我们来演示在.Net Core中使用MySQL吧。
1、原生模式(不要忘记安装 MySql.Data )
classUsers
{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 = new List();using (MySqlConnection conn = newMySqlConnection(connString))
{
conn.Open();using (MySqlCommand cmd = newMySqlCommand(sql, conn))
{
MySqlDataReader dr=cmd.ExecuteReader();while(dr.Read())
{
users.Add(newUsers
{
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 = new List();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(newUsers
{
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 = new List();
{using (MySqlConnection conn = newMySqlConnection(connString))
{
conn.Open();
users= conn.Query(sql);
}
users.ToList().ForEach(u=>{
Console.WriteLine($"{u.Id}. 姓名:{u.Name},用户名:{u.UserName}");
});
}
Console.ReadKey();
}
结果如下: