北京環(huán)球影城每日客流量統(tǒng)計排名優(yōu)化公司口碑哪家好
1、本文將使用SqlSugar創(chuàng)建Sqlite數(shù)據(jù)庫,進行入門的增刪改查等操作。擦,咋寫著寫著凌亂起來了。
SqlSugar官方文檔:簡單示例,1分鐘入門 - SqlSugar 5x - .NET果糖網(wǎng)
2、環(huán)境SqlSugar V5.0版本需要.Net Framework 4.6 ,NuGet添加內(nèi)容如下,安裝紅框中的內(nèi)容就可以了。這里的數(shù)據(jù)庫demo.db是自動創(chuàng)建的。
3、運行效果如下圖 。
4、整體代碼如下。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SqlSugar;namespace ConsoleAppSqlSugar
{class Program{static void Main(string[] args){Console.WriteLine("啟動");// 創(chuàng)建數(shù)據(jù)庫對象SqlSugarClient Db = new SqlSugarClient(new ConnectionConfig(){ConnectionString = "datasource=demo.db",DbType = DbType.Sqlite,IsAutoCloseConnection = true}, db =>{db.Aop.OnLogExecuting = (sql, pars) =>{//獲取原生SQL推薦 5.1.4.63 性能OKConsole.WriteLine(UtilMethods.GetNativeSql(sql,pars));//獲取無參數(shù)化 SQL 對性能有影響,特別大的SQL參數(shù)多的,調(diào)試使用//Console.WriteLine(UtilMethods.GetSqlString(DbType.Sqlite,sql,pars));};//注意多租戶 有幾個設(shè)置幾個//db.GetConnection(5).Aop;});bool isExit = true;while (isExit){Console.WriteLine("請輸入:");Console.WriteLine("1、創(chuàng)建數(shù)據(jù)庫。");Console.WriteLine("2、創(chuàng)建數(shù)據(jù)表。");Console.WriteLine("3、查詢表的所有。");Console.WriteLine("4、插入數(shù)據(jù)。");Console.WriteLine("5、更新數(shù)據(jù)。");Console.WriteLine("6、刪除數(shù)據(jù)。");Console.WriteLine("7、退出");int result;if (int.TryParse(Console.ReadLine(),out result)){switch (result){case 1:Db.DbMaintenance.CreateDatabase();//達夢和Oracle不支持建庫break;case 2:Db.CodeFirst.InitTables<ToDos>();//所有庫都支持break;case 3://查詢表的所有var list = Db.Queryable<ToDos>().ToList();foreach (ToDos item in list){Console.WriteLine("ToDoName:"+item.ToDoName+" "+ "ToDoDescription:" + item.ToDoDescription);}break;case 4://插入int num1=Db.Insertable(new ToDos() { ToDoName = "任務(wù)名稱", ToDoDescription = "任務(wù)描述" }).ExecuteCommand();if (num1>0){Console.WriteLine("插入數(shù)據(jù)成功");}break;case 5://更新int num2 = Db.Updateable(new ToDos() { Id = 1, ToDoName = "任務(wù)名稱更新", ToDoDescription = "任務(wù)描述更新" }).ExecuteCommand();if (num2 > 0){Console.WriteLine("更新數(shù)據(jù)成功");}break;case 6://刪除int num3 = Db.Deleteable<ToDos>().Where(it => it.Id == 1).ExecuteCommand();if (num3 > 0){Console.WriteLine("刪除數(shù)據(jù)成功");}break;case 7:isExit = false;break;default:isExit = false;break;}}}Console.WriteLine("輸入回車退出程序。");Console.ReadLine();}}
}
5、簡單的倉儲,其實官網(wǎng)也有很合的倉儲示例。倉儲簡單類代碼如下。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SqlSugar;namespace ConsoleAppSqlSugar
{//定義一個泛型倉儲類,繼承自SimpleClient<T>,T是一個類的泛型參數(shù)public class SqlSugarRepository<T>:SimpleClient<T> where T:class,new(){//構(gòu)造函數(shù)public SqlSugarRepository(){//創(chuàng)建SqlSugarClient實例,用于數(shù)據(jù)庫操作。var db = new SqlSugarClient(new ConnectionConfig(){ConnectionString = "datasource=demo.db",DbType = DbType.Sqlite,IsAutoCloseConnection = true});//將創(chuàng)建的SqlSugarClient實例復(fù)制給繼承自SimlpeClient<T>的Context屬性base.Context = db;//配置AOP攔截器,在SQL語句執(zhí)行前輸出SQL語句控制器db.Aop.OnLogExecuting = (sql, pars) =>{Console.WriteLine(sql); //控制臺輸出執(zhí)行的SQL語句};}}
}
調(diào)用代碼如下。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SqlSugar;namespace ConsoleAppSqlSugar
{class Program{static void Main(string[] args){Console.WriteLine("啟動");// 創(chuàng)建數(shù)據(jù)庫對象//SqlSugarClient Db = new SqlSugarClient(new ConnectionConfig()//{// ConnectionString = "datasource=demo.db",// DbType = DbType.Sqlite,// IsAutoCloseConnection = true//}, db =>//{// db.Aop.OnLogExecuting = (sql, pars) =>// {// //獲取原生SQL推薦 5.1.4.63 性能OK// Console.WriteLine(UtilMethods.GetNativeSql(sql,pars));// //獲取無參數(shù)化 SQL 對性能有影響,特別大的SQL參數(shù)多的,調(diào)試使用// //Console.WriteLine(UtilMethods.GetSqlString(DbType.Sqlite,sql,pars));// };// //注意多租戶 有幾個設(shè)置幾個// //db.GetConnection(5).Aop;//});//創(chuàng)建ToDos類型的倉儲實例。var toDosRepository = new SqlSugarRepository<ToDos>();bool isExit = true;while (isExit){Console.WriteLine("請輸入:");Console.WriteLine("1、創(chuàng)建數(shù)據(jù)庫。");Console.WriteLine("2、創(chuàng)建數(shù)據(jù)表。");Console.WriteLine("3、查詢表的所有。");Console.WriteLine("4、插入數(shù)據(jù)。");Console.WriteLine("5、更新數(shù)據(jù)。");Console.WriteLine("6、刪除數(shù)據(jù)。");Console.WriteLine("7、退出");int result;if (int.TryParse(Console.ReadLine(),out result)){switch (result){case 1://Db.DbMaintenance.CreateDatabase();//達夢和Oracle不支持建庫toDosRepository.Context.DbMaintenance.CreateDatabase();break;case 2://Db.CodeFirst.InitTables<ToDos>();//所有庫都支持toDosRepository.Context.CodeFirst.InitTables<ToDos>();//所有庫都支持break;case 3://查詢表的所有//var list = Db.Queryable<ToDos>().ToList();var list = toDosRepository.Context.Queryable<ToDos>().ToList();foreach (ToDos item in list){Console.WriteLine("ToDoName:"+item.ToDoName+" "+ "ToDoDescription:" + item.ToDoDescription);}break;case 4://插入//int num1=Db.Insertable(new ToDos() { ToDoName = "任務(wù)名稱", ToDoDescription = "任務(wù)描述" }).ExecuteCommand();int num1 = toDosRepository.Context.Insertable(new ToDos() { ToDoName = "任務(wù)名稱", ToDoDescription = "任務(wù)描述" }).ExecuteCommand();if (num1>0){Console.WriteLine("插入數(shù)據(jù)成功");}break;case 5://更新//int num2 = Db.Updateable(new ToDos() { Id = 1, ToDoName = "任務(wù)名稱更新", ToDoDescription = "任務(wù)描述更新" }).ExecuteCommand();int num2 = toDosRepository.Context.Updateable(new ToDos() { Id = 1, ToDoName = "任務(wù)名稱更新", ToDoDescription = "任務(wù)描述更新" }).ExecuteCommand();if (num2 > 0){Console.WriteLine("更新數(shù)據(jù)成功");}break;case 6://刪除//int num3 = Db.Deleteable<ToDos>().Where(it => it.Id == 1).ExecuteCommand();int num3 = toDosRepository.Context.Deleteable<ToDos>().Where(it => it.Id == 1).ExecuteCommand();if (num3 > 0){Console.WriteLine("刪除數(shù)據(jù)成功");}break;case 7:isExit = false;break;default:isExit = false;break;}}}Console.WriteLine("輸入回車退出程序。");Console.ReadLine();}}
}