【C#】半個鍾學會高效便捷對接資料庫開發

2021-06-09 08:00:01

目錄

前言

一、何為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隨機生成姓名、年齡、學歷等資訊