C#半个钟学会高效便捷对接数据库开发
Posted 攻城狮白玉
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#半个钟学会高效便捷对接数据库开发相关的知识,希望对你有一定的参考价值。
目录
前言
面对C#连接数据库
如果你零基础,那么看这篇文章就对了,这篇文章由浅入深~你会发现~啊~好深
如果你有基础,那么看这篇文章就对了,这篇文章介绍了C#另一种连接方法,毕竟百度搜索C#连接mysql,大多数的文章都是介绍你直接用MySQL.Data这个库来连接的。
之前C#开发的时候,我自己对接MySQL开发使用的是通过.net的包管理库安装了Mysql.Data这个库
有一说一,这个库用起来不好用,也可能是我不会用,反正在高并发插入数据的时候,这个库一定会报错,加了锁也没有用。(如果有大神知道怎么解决的告诉一下我)
害,我大概是个假的程序员吧,本着解决不了问题,就解决掉发现问题的人,所以我换了一个库,SqlSugar ORM。这个库可就牛逼了,对于我这种零基础的家伙都十分友好。
一、何为SqlSugar
SqlSugar是一款 老牌 .NET 开源ORM框架
SqlSugar的优点:简单易用、功能齐全、高性能、轻量级
支持的数据库有:MySql、SqlServer、Sqlite、Oracle 、 postgresql、达梦、人大金仓
二、安装SqlSugar
进入Nuget包管理工具
根据自己C#开发的程序需要选择对应的包
.net core 版本选择 SqlSugarCore
.net5 版本选择 SqlSugarCore
.net framework SqlSugar
我这里是WPF开发,用的.net framework。所以我搜索SqlSugar并安装,。
三、简单示例
3.1 数据准备
这里我测试的是用sql sugar来连接MySQL数据库
我这里新建了一个数据库叫baiyu
新的一张数据表people_info
字段名称有id、name、age、sex、education、telephone
并且生成了一百条假数据,姓名是在线随机生成的,电话也是在线随机生成的。随机生成数据的方法我也会放在文末。
3.2 新建工程
3.3 用法解析
要使用sqlsugar库记得引入
using SqlSugar
使用之前要创建数据库对象SqlSugarClient,我们的所有操作都是基于SqlSugarClient进行的
SqlSugarClient是通过ConnectionConfig进行传参数详细参数如下:
名称 | 描述 | 必填 |
DbType | 数据库类型 | 是 |
ConnectionString | 连接字符串 | 是 |
IsAutoCloseConnection | 自动释放和关闭数据库连接,如果有事务事务结束时关闭,否则每次操作后关闭 |
|
ConfigureExternalServices | 一些扩展层务的集成 |
|
MoreSettings | 更多设置 |
|
SlaveConnectionConfigs | 主从设置 |
|
ConnectionString这个连接字符串要根据你DbType选择的数据库类型进行对应
DbType 数据库类型 | ConnectionString 连接字符串内容 |
MySql | server=localhost;Database=baiyu;Uid=root;Pwd= baiyu96 |
SqlServer | server=.;uid=sa;pwd= baiyu96;database=BAIYUTEST |
Sqlite | DataSource="/DataBase/Baiyu.sqlite" |
Oracle | Data Source=localhost/orcl;User ID=system;Password=baiyu; |
PostgreSQL | PORT=5432;DATABASE=baiyu;HOST=localhost;PASSWORD= baiyu96;USER ID=postgres |
Dm //达梦 全部支持 | PORT=5236;DATABASE=DAMENG;HOST=localhost;PASSWORD=baiyu96;USER ID=SYSDBA |
Kdbndp //人大金仓 只支持.NET CORE | Server=127.0.0.1;Port=54321;UID=SYSTEM;PWD=baiyu96;database=baiyu |
因为我这里使用的是MySQL数据库、所以我这里的连接字符串如下:
Server=127.0.0.1;Database=baiyu;Uid=root;Pwd=baiyu96
创建数据库对象的代码如下:
//创建数据库对象
SqlSugarClient db = new SqlSugarClient(new ConnectionConfig()
{
ConnectionString = "Server=127.0.0.1;Database=baiyu;Uid=root;Pwd=baiyu96",//连接符字串
DbType = DbType.MySql,
IsAutoCloseConnection = true
});
上面咱们提到咱们的数据库有哪些字段、所以咱们在代码里面新建一个对应的实体类
在咱们的类上面声明一下咱们对应的数据表是那一张表,比如这里,我的表是people_info
如果觉得数据库字段名太长,要在咱们的实体类里取一个别名,sqlsugar也是支持的
只需要你在对应的变量前面加上一个声明。比如我的telephone字段名字太长,我在实体类里想换成phone,对应的代码如下:
[SugarColumn(ColumnName = "Telephone")]//数据库列名取自定义名称
public string phone { get; set; }
声明实体类代码如下:
//实体与数据库结构一样
[SugarTable("people_info")]//要查询数据的表名称
public class PeopleInfo
{
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]//主键并且自增 (string不能设置自增)
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public int Sex { get; set; }
public string Education{ get; set; }
[SugarColumn(ColumnName = "Telephone")]//数据库列名取自定义名称
public string phone { get; set; }
}
3.4 完整代码
完整的LearnSqlSugar.cs代码
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SqlConnect
{
class LearnSqlSugar
{
//查询所有
public List<PeopleInfo> GetStudentList()
{
var db = GetInstance();//获取SqlSugarClient
var list = db.Queryable<PeopleInfo>().ToList();//查询表的所有
return list;
}
//创建SqlSugarClient
private SqlSugarClient GetInstance()
{
//创建数据库对象
SqlSugarClient db = new SqlSugarClient(new ConnectionConfig()
{
ConnectionString = "Server=119.23.44.156;Database=baiyu;Uid=root;Pwd=baiyu96",//连接符字串
DbType = DbType.MySql,
IsAutoCloseConnection = true
});
//添加Sql打印事件,开发中可以删掉这个代码
db.Aop.OnLogExecuting = (sql, pars) =>
{
Console.WriteLine(sql);
};
return db;
}
//实体与数据库结构一样
[SugarTable("people_info")]//要查询数据的表名称
public class PeopleInfo
{
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]//主键并且自增 (string不能设置自增)
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public int Sex { get; set; }
public string Education{ get; set; }
[SugarColumn(ColumnName = "Telephone")]//数据库列名取自定义
public string phone { get; set; }
}
}
}
在main窗体调用
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace SqlConnect
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
//InitializeComponent();
LearnSqlSugar learnSqlSugar = new LearnSqlSugar();
var l = learnSqlSugar.GetStudentList();
foreach (var item in l)
{
var sex = (item.Sex) == 0 ? "男" : "女";
Console.WriteLine($"id:{item.Id} name:{item.Name} sex:{sex} edu:{item.Education} phone:{item.phone}");
}
}
}
}
效果如下:
总结
这个Sqlsugar库是真的好用,对于C#对接数据库开发是一个福音来着。如果我这边文章有幸给你看到,也希望你能用一下这个库。好库推荐!!!
如果你觉得本文有用,给我来个一键三连如何,真诚点赞,手留余香。
参考链接
以上是关于C#半个钟学会高效便捷对接数据库开发的主要内容,如果未能解决你的问题,请参考以下文章