【C#】半个钟学会高效便捷对接数据库开发

4 篇文章 0 订阅
1 篇文章 0 订阅

目录

前言

一、何为SqlSugar

二、安装SqlSugar

三、简单示例

3.1 数据准备

3.2 新建工程

3.3 用法解析

3.4 完整代码

总结

参考链接


 

前言

面对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#对接数据库开发是一个福音来着。如果我这边文章有幸给你看到,也希望你能用一下这个库。好库推荐!!!

如果你觉得本文有用,给我来个一键三连如何,真诚点赞,手留余香。

参考链接

SqlSugar ORM 5.X 官网文档 - SqlSugar 5x - .NET果糖网

在线手机号码生成器 - UU在线工具

姓名生成器,中文人名在线生成_千千秀字

用Excel随机生成姓名、年龄、学历等信息

  • 26
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 41
    评论
前面做项目,有数据库操作太慢。 而且,有一些新的程序员,他们对数据库操作的经验比较欠缺, 而且,.net需要学的东西就非常多,涵盖很多,还要程序员精通数据库,就更加麻烦,没有好多年的经验, 操作数据库的,一检查就有很多问题。所以,根据需要,我就找到了这个 简单的,高效,快速,方便的 .net数据库操作方案。非常直观。不需要懂数据库都能开发了。 找了好久,总算找到了,分享给大家。 ---------------------------- ------------------------------ SqLamdalf1.0 ----------================-----------================--------- .net与数据库最佳操作类。 无缝衔接sql server和.net。 不需要为操作数据库再话费大量的开发时间,节约开发成本,以及更高效,更快速,更方便。 以后将陆续支持更多的数据库。 ----------================-----------================--------- SqLamdalf1.0免费版,欢迎使用。 使用方法: 双击setup.exe 安装以后。 桌面会出现 SqLamdalf 然后直接添加到需要的程序引用中,就可以使用了。 ============================================================== 调用方法: using SqlLamdalf; //工厂方法建立连接字符串 SqlLamdalf.FactoryAnna factorySql = new SqlLamdalf.FactoryAnna(AnnaType.SqlServer, "Persist Security Info=False;Integrated Security=SSPI;Database=数据库名称;Server=sql服务器名称"); //对需要的表的对象建立对象Sql。下面例子中为两个表,目前已经支持9个表: var Sql = factorySql.Create(); //目前支持返回 1实体类Sql.ExecuteEntity,2实体类列表,3表格,4字符串,5int var sdfsf123 = Sql.ExecuteList((a, b) => Sub.Top(8).Select(a.UserId, a.UserName).From(a) ); //目前支持返回 1实体类Sql.ExecuteEntity,2实体类列表,3表格,4字符串,5int var sdfsf123 = Sql.ExecuteList((a, b) => Sub.Top(8).Select(a.UserId, a.UserName).From(a) ); //分页查询如下,注意OrderBy免费版请取消 DataTable dtUser = Sql.ExecuteDataTable((a, b) => Sub.PageSize(12).PageIndex(2).Select(a.UserId.As("ID号"), a.UserName.As("名字")).From(a).OrderBy(a.CreateDate.Desc()) ); //如需执行多条语句,请在语句后面加上Next() var sdfsf1113 = Sql.ExecuteList((a, b) => Sub.Insert(a).Values("213", "111", 11, "2012-02-02"). Next(). Select("213", "111", 11, "2012-02-02").From(a).Where(a.UserId == 123123) ); //下面是联结方式的多表查询,支持各种联结查询,&&意味and,LikeLeft意为Like '%name',LikeRight var sdfsf21 = Sql.ExecuteNonQuery((a, b) => Sub.Update(a).Set(a.RoleId == u1.RoleId, a.LoginPassword == irod.ToString(), a.UserName == "2").From(a). InnerJoin(b).On(a.UserId == b.CategoryId) .Where(a.UserId == 1 && (a.UserName + "123").LikeLeft(u1.UserName)) );
评论 41
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

攻城狮白玉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值