c#--使用SqlSugar動態切換數據庫


1,UI設置界面

 

 

2,啟動界面加載的時候,設置數據庫類型和連接字符串

        #region Initial(),讀取Config配置文件,給Global的變量賦值

        /// <summary>
        /// 讀取Config配置文件,給Global的變量賦值【放在啟動界面加載的事件中】
        /// </summary>
        void Initial()
        {
            CommonMethods.SetPropertiesFromXml(ConfigFilePath + "ParameterList.xml", GlobalVariable.myParameter);//讀取配置文件賦值給儲存類的屬性

            //設置數據庫類型和連接字符串
            SqlSugarService.SetDBType(GlobalVariable.myParameter.DBType);
            SqlSugarService.SetConnectionString(GlobalVariable.myParameter.DBConStr);
        }

        #endregion

 

3,SqlSugarHelper

using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

/*
 * 手動添加SqlSugar.dll引用
 */

namespace _009_TPS.DAL.Helper
{
    public static class SqlSugarHelper
    {
        //連接字符串
        public static string ConnectionString = string.Empty;
        //數據庫類型
        public static DbType DBType = DbType.SqlServer;

        public static SqlSugarClient SqlSugarClient
        {
            get
            {
                return new SqlSugarClient(new ConnectionConfig()
                {
                    
                    ConnectionString = ConnectionString,//必填, 數據庫連接字符串
                    //DbType = DbType.Sqlite,//必填,選擇數據庫類型                    
                    //DbType = DbType.SqlServer ,//必填,選擇數據庫類型 
                    DbType = DBType,
                    IsAutoCloseConnection = true,//設置為true無需使用using或者Close操作,自動關閉連接,不需要手動關閉數據鏈接
                    InitKeyType = InitKeyType.SystemTable//默認SystemTable, 字段信息讀取, 如:該屬性是不是主鍵,是不是標識列等等信息

                });
            }

        }
    }
}

 

4,SqlSugarService

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SqlSugar;

namespace _009_TPS.DAL.Helper
{
    /// <summary>
    /// 設置數據庫的連接字符串
    /// </summary>
    public static class SqlSugarService
    {
        /// <summary>
        /// 設置數據庫的類型
        /// </summary>
        /// <param name="dbType"></param>
        public static void SetDBType(string dbType)
        {
            switch (dbType.ToLower())
            {
                case "sqlserver":
                    SqlSugarHelper.DBType = DbType.SqlServer;
                    break;
                case "sqlite":
                    SqlSugarHelper.DBType = DbType.Sqlite;
                    break;
                case "mysql":
                    SqlSugarHelper.DBType = DbType.MySql;
                    break;
                default:
                    SqlSugarHelper.DBType = DbType.SqlServer;
                    break;
            }            
        }

        /// <summary>
        /// 設置數據庫的連接字符串
        /// </summary>
        /// <param name="ConnectionString"></param>
        public static void SetConnectionString(string ConnectionString)
        {
            SqlSugarHelper.ConnectionString = ConnectionString;
        }
    }
}

 

比如:用戶的增刪改查

1,SysAdmin

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _009_TPS.Models
{

    /// <summary>
    /// 登錄用戶類
    /// </summary>
    public class SysAdmin
    {
        //登錄ID
        public int LoginId { get; set; }

        //登錄名稱
        public string LoginName { get; set; }

        //登錄密碼
        public string LoginPwd { get; set; }

        /// <summary>
        /// 角色 0:操作工 1:工程師 2:主管
        /// </summary>
        public int UserRole { get; set; }

        /// <summary>
        /// 用戶卡號
        /// </summary>
        public string UserCardNo { get; set; }

    }

}

  

2,SysAdminService

using _009_TPS.DAL.Helper;
using _009_TPS.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _009_TPS.DAL
{
    /// <summary>
    /// 用戶管理Service
    /// </summary>
    public class SysAdminService
    {
        /// <summary>
        /// 返回所有的用戶集合(admin除外)
        /// </summary>
        /// <returns>用戶對象集合</returns>
        public static List<SysAdmin> GetAllAdminDB()
        {
            return SqlSugarHelper.SqlSugarClient.Queryable<SysAdmin>().Where(c => c.LoginName.ToLower() != "admin")
                .ToList();
        }

        /// <summary>
        /// 驗證登錄用戶結果(驗證用戶名和密碼和數據庫的是否一致)
        /// </summary>
        /// <param name="sysAdmin">用戶對象</param>
        /// <returns>用戶對象</returns>
        public static SysAdmin AdminLogin(SysAdmin sysAdmin)
        {
            var list = SqlSugarHelper.SqlSugarClient.Queryable<SysAdmin>().Where(c =>
                c.LoginName.ToLower() == sysAdmin.LoginName && c.LoginPwd == sysAdmin.LoginPwd).ToList();
            return list.Count == 0 ? null : list[0];
        }

        /// <summary>
        /// 驗證登錄用戶結果(根據用戶卡號返回用戶對象)
        /// </summary>
        /// <param name="sysAdmin">用戶對象</param>
        /// <returns>用戶對象</returns>
        public static SysAdmin AdminLoginWithUserCardNo(SysAdmin sysAdmin)
        {
            var list = SqlSugarHelper.SqlSugarClient.Queryable<SysAdmin>()
                .Where(c => c.UserCardNo == sysAdmin.UserCardNo).ToList();
            return list.Count == 0 ? null : list[0];
        }

        /// <summary>
        /// 增:添加用戶
        /// </summary>
        /// <param name="admin">用戶對象</param>
        /// <returns></returns>
        public static bool AddAdminDB(SysAdmin admin)
        {
            return SqlSugarHelper.SqlSugarClient.Insertable(admin).ExecuteCommand() == 1;
        }

        /// <summary>
        /// 根據用戶名判斷用戶是否存在
        /// </summary>
        /// <param name="loginName">用戶名</param>
        /// <returns></returns>
        public static bool CheckLoginNameExit(string loginName)
        {
            return SqlSugarHelper.SqlSugarClient.Queryable<SysAdmin>().Where(c => c.LoginName == loginName).Count() > 0;
        }

        /// <summary>
        /// 根據卡號判斷用戶是否存在
        /// </summary>
        /// <param name="loginName">卡號</param>
        /// <returns></returns>
        public static bool CheckUserCardNoExit(string userCardNo)
        {
            return SqlSugarHelper.SqlSugarClient.Queryable<SysAdmin>().Where(c => c.UserCardNo == userCardNo).Count() >
                   0;
        }

        /// <summary>
        /// 改:根據用戶名更新用戶
        /// </summary>
        /// <param name="admin">用戶對象</param>
        /// <returns></returns>
        public static bool UpdateAdminDB(SysAdmin admin)
        {
            return SqlSugarHelper.SqlSugarClient.Updateable(admin).WhereColumns(c => c.LoginName)
                       .ExecuteCommand() == 1;
        }


        /// <summary>
        /// 刪:更加用戶名刪除用戶
        /// </summary>
        /// <param name="loginName">用戶名</param>
        /// <returns></returns>
        public static bool DeleteAdminDB(string loginName)
        {
            return SqlSugarHelper.SqlSugarClient.Deleteable<SysAdmin>().Where(c => c.LoginName == loginName)
                       .ExecuteCommand() == 1;
        }

        /// <summary>
        /// 根據用戶名稱返回用戶對象
        /// </summary>
        /// <param name="loginName">用戶名</param>
        /// <returns>用戶對象</returns>
        public static SysAdmin GetSysAdminByLoginName(string loginName)
        {
            var query = SqlSugarHelper.SqlSugarClient.Queryable<SysAdmin>().Where(c => c.LoginName == loginName)
                .ToList();
            if (query.Count > 0)
            {
                return query[0];
            }
            else
            {
                return null;
            }
        }
    }
}

  

3,

        //添加用戶
        private void btn_add_Click(object sender, EventArgs e)
        {
            if (this.txt_loginPwd.Text.Trim().Length > 0 && this.txt_loginName.Text.Trim().Length > 0)
            {
                SysAdmin admin = new SysAdmin()
                {
                    LoginName = this.txt_loginName.Text.Trim(),
                    LoginPwd = this.txt_loginPwd.Text.Trim(),
                    UserRole = this.rdb_operation.Checked ? 0 : this.rdb_engineer.Checked ? 1 : 2,
                    UserCardNo = this.txt_userCardNo.Text.Trim()
                };
                if (SysAdminService.AddAdminDB(admin))
                {
                    MessageBox.Show("新用戶:" + $"“{admin.LoginName}”" + "添加成功", "添加用戶");
                    UpdateAdmin();
                }
                else
                {
                    MessageBox.Show("新用戶:" + $"“{admin.LoginName}”" + "添加失敗", "添加用戶");
                }

            }
            else
            {
                MessageBox.Show("用戶名稱或用戶密碼不能為空","添加用戶");
            }
        }

        //修改用戶
        private void btn_Modify_Click(object sender, EventArgs e)
        {
            if (this.txt_userCardNo.Text.Trim().Length > 0 && this.txt_loginName.Text.Trim().Length > 0)
            {
                //檢測用戶是否存在
                if (!SysAdminService.CheckLoginNameExit(this.txt_loginName.Text))
                {
                    MessageBox.Show("該用戶名稱不存在,請添加后再修改", "修改用戶");
                    return;
                }
                SysAdmin admin = new SysAdmin()
                {
                    LoginName = this.txt_loginName.Text.Trim(),
                    LoginPwd = this.txt_loginPwd.Text.Trim(),
                    UserRole = this.rdb_operation.Checked ? 0 : this.rdb_engineer.Checked ? 1 : 2,
                    UserCardNo = this.txt_userCardNo.Text.Trim()
                };
                if (SysAdminService.UpdateAdminDB(admin))
                {
                    MessageBox.Show("用戶:" + $"“{admin.LoginName}”" + "信息修改成功", "修改用戶");
                    UpdateAdmin();
                }
                else
                {
                    MessageBox.Show("用戶:" + $"“{admin.LoginName}”" + "信息修改失敗", "修改用戶");
                }

            }
            else
            {
                MessageBox.Show("用戶名稱或用戶密碼不能為空", "添加用戶");
            }
        }

        //刪除用戶
        private void btn_delete_Click(object sender, EventArgs e)
        {
            if (this.dgv_data.SelectedRows.Count > 0)
            {
                string loginName = this.dgv_data.SelectedRows[0].Cells["LoginName"].Value.ToString();

                //刪除確認
                DialogResult result = MessageBox.Show("確認要刪除用戶  [" + loginName + "]  嗎?", "刪除詢問", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
                if (result == DialogResult.Cancel) return;

                if (SysAdminService.DeleteAdminDB(loginName))
                {
                    MessageBox.Show("用戶:" + $"“{loginName}”" + "刪除成功", "刪除用戶");
                    UpdateAdmin();
                }
                else
                {
                    MessageBox.Show("用戶:" + $"“{loginName}”" + "刪除失敗", "刪除用戶");
                }
            }
            else
            {
                MessageBox.Show("請選擇要刪除的用戶", "刪除用戶");
            }
        }

        //關閉
        private void btn_close_Click(object sender, EventArgs e)
        {
            this.Close();
            this.Dispose();
        }

        //更新
        private void UpdateAdmin()
        {
            this.dgv_data.DataSource = null;
            this.dgv_data.DataSource = SysAdminService.GetAllAdminDB();
        }

  

 

 

 


免責聲明!

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



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