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

Posted 攻城狮白玉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#半个钟学会高效便捷对接数据库开发相关的知识,希望对你有一定的参考价值。

目录

前言

一、何为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随机生成姓名、年龄、学历等信息

以上是关于C#半个钟学会高效便捷对接数据库开发的主要内容,如果未能解决你的问题,请参考以下文章

还在用土方法建站?半个钟零基础学习拖拽式建站了解一下。

java与WebService对接案例--生成代码方法

高效Web开发的10个jQuery代码片段

万物皆可集成系列:低代码对接Web Service接口

万物皆可集成系列:低代码对接Web Service接口

高效Web开发的10个jQuery代码片段