C# SqlSugar框架的學習使用(二)-- 類的生成及增刪改查的應用


C# SqlSugar框架的學習使用(二)-- 類的生成及增刪改查的應用

C# SqlSugar框架的學習使用(二)-- 類的生成及增刪改查的應用 - 雲+社區 - 騰訊雲 (tencent.com)

前一篇《C# SqlSugar框架的學習使用(一)--SqlSugar簡介及創建》我們已經簡單的介紹了一下SqlSugar,最后我們在項目中新建了一個SqlSugarTest的Demo。這篇我們就用這個Demo進行我們的數據庫操作。

環境說明

數據庫版本:SQLSERVER 2008 R2

編譯器:Visual Studio 2017

我們自己的SQLSERVER2008中創建了一個名稱為SumCharge的數據庫,里面建立了一部分表,如下圖:

代碼演示

我們在上一篇中建的SqlSugarTest中的框體文件加入6個Button和一個TextBox。

封裝一下文本框操作

        #region 文本框操作
        //定義文本框
        private static TextBox _tbMsg; //定義Action private Action<string> TextShowAction = new Action<string>(TextShow); //定義更新UI函數 private static void TextShow(string sMsg) { //當文本行數大於500后清空 if (_tbMsg.Lines.Length > 500) { _tbMsg.Clear(); } string ShowMsg = DateTime.Now + " " + sMsg + "\r\n"; _tbMsg.AppendText(ShowMsg); //讓文本框獲取焦點 _tbMsg.Focus(); //設置光標的位置到文本尾 _tbMsg.Select(_tbMsg.TextLength, 0); //滾動到控件光標處 _tbMsg.ScrollToCaret(); } #endregion

數據庫連接代碼

        #region 數據庫連接
        /// <summary>
        /// 數據庫實例 /// </summary> private SqlSugarClient _db; //數據庫連接字符串 private string _connstr = "server=.;uid=sa;pwd=sumsoft;database=SumCharge"; /// <summary> /// 連接數據庫 /// </summary> /// <param name="connstr"></param> private void ConnectDb(string connstr) { _db = new SqlSugarClient( new ConnectionConfig() { ConnectionString = _connstr, DbType = SqlSugar.DbType.SqlServer,//設置數據庫類型 IsAutoCloseConnection = true,//自動釋放數據務,如果存在事務,在事務結束后釋放 InitKeyType = InitKeyType.Attribute //從實體特性中讀取主鍵自增列信息 }); //用來打印Sql方便你調式 _db.Aop.OnLogExecuting = (sql, pars) => { TextShow(sql); TextShow(_db.Utilities.SerializeObject(pars.ToDictionary(it => it.ParameterName, it => it.Value))); }; } #endregion

上面兩段就是我們的核心代碼了,接下來我們來試試各個功能

連接數據庫

我們在打開程序后要先連接數據庫,數據庫連接成功后才能進行別的操作,上面是連接數據庫的核心代碼,這里我們直接就是寫一下按鈕事件即可。

根據數據庫表生成實體類

        /// <summary>
        /// 根據數據庫表生成實體類 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button1_Click(object sender, EventArgs e) { try { _db.DbFirst.IsCreateDefaultValue(). CreateClassFile("D:\\Business\\DemoTEST\\CSharp\\SqlSugarTest\\SqlSugarTest\\Model", "Model"); TextShow("類生成成功"); } catch (Exception ex) { TextShow(ex.Message); } }

上面的CreateClassFile里面有兩個參數,第一個參數是生成的路徑,第二個是命名空間。

我們先來運行一下看看,指定的文件夾下現在是空的,我們打開程序,先點連接數據庫,再點擊生成類。

再看看當前文件夾下,數據庫中的表全都生成了對應的類了

我們先把對應的類加入到項目中,方便后面的增、刪、改、查的操作。

SqlSugar增刪改查操作

我們都以數據庫的OS這個表進行操作吧,表里一共四個字段,數據一條也沒有。

通過SqlSugar生成的POS類

using System;
using System.Linq; using System.Text; namespace Model { ///<summary> /// ///</summary> public partial class POS { public POS(){ } /// <summary> /// Desc: /// Default: /// Nullable:False /// </summary> public string Posno {get;set;} /// <summary> /// Desc: /// Default: /// Nullable:False /// </summary> public string Posname {get;set;} /// <summary> /// Desc: /// Default: /// Nullable:True /// </summary> public string OrgCode {get;set;} /// <summary> /// Desc: /// Default: /// Nullable:True /// </summary> public string status {get;set;} } }

增加Insert

實例化POS賦值后進行插入操作

運行效果

我們前面在連接數據庫時加入了輸入Sql語句,為了方便調試,所以第二張圖紅框中就是我們加入生成的SQL語句。

再查查數據庫中的表

查詢Select

返回所有數據

根據條件查詢

運行效果

修改Update

運行后看到發現提示錯誤

看上圖的提示告訴我們沒有找到主鍵,我們生成的這個類里沒有相關的特性,查了一下SqlSugar后,發現我們可以在類中自己定義出來,在POS類中的Posno上面加入特性,如下圖

重新運行后發現修改成功了

但是從上面的語句我們可以看到,我們沒有加入的OrgCode和Status都默認在修改里面了,數據庫中原來有值的也被改為NULL了。

所以我們建議修改的時候要先把對應的屬性先查詢出來后再統一修改,這樣不會傳入的類后直接沒賦值的改為NULL了。

刪除Delete

刪除里面我用了lambda表達式,把Posno為0001刪除了,其實還有別的刪除寫法

運行效果

在數據庫中再查詢也是沒有數據了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM