目錄
面對C#連線資料庫
如果你零基礎,那麼看這篇文章就對了,這篇文章由淺入深~你會發現~啊~好深
如果你有基礎,那麼看這篇文章就對了,這篇文章介紹了C#另一種連線方法,畢竟百度搜尋C#連線MySQL,大多數的文章都是介紹你直接用MySQL.Data這個庫來連線的。
之前C#開發的時候,我自己對接MySQL開發使用的是通過.net的包管理庫安裝了Mysql.Data這個庫
有一說一,這個庫用起來不好用,也可能是我不會用,反正在高並行插入資料的時候,這個庫一定會報錯,加了鎖也沒有用。(如果有大神知道怎麼解決的告訴一下我)
害,我大概是個假的程式設計師吧,本著解決不了問題,就解決掉髮現問題的人,所以我換了一個庫,SqlSugar ORM。這個庫可就牛逼了,對於我這種零基礎的傢伙都十分友好。
SqlSugar是一款 老牌 .NET 開源ORM框架
SqlSugar的優點:簡單易用、功能齊全、高效能、輕量級
支援的資料庫有:MySql、SqlServer、Sqlite、Oracle 、 postgresql、達夢、人大金倉
進入Nuget包管理工具
根據自己C#開發的程式需要選擇對應的包
.net core 版本選擇 SqlSugarCore
.net5 版本選擇 SqlSugarCore
.net framework SqlSugar
我這裡是WPF開發,用的.net framework。所以我搜尋SqlSugar並安裝,。
這裡我測試的是用sql sugar來連線MySQL資料庫
我這裡新建了一個資料庫叫baiyu
新的一張資料表people_info
欄位名稱有id、name、age、sex、education、telephone
並且生成了一百條假資料,姓名是線上隨機生成的,電話也是線上隨機生成的。隨機生成資料的方法我也會放在文末。
要使用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; }
}
完整的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#對接資料庫開發是一個福音來著。如果我這邊文章有幸給你看到,也希望你能用一下這個庫。好庫推薦!!!
如果你覺得本文有用,給我來個一鍵三連如何,真誠點贊,手留餘香。