# 前言 SQLite是一種輕量級的關係型資料庫管理系統,支持跨平臺操作。它可以嵌入到程式中,無需單獨的伺服器進程或者配置文件,減少了資料庫維護的負擔和運行的複雜性。SQLite的數據存儲在單個文件中,方便備份、傳輸和分享,也容易進行版本管理。SQLite擁有良好的性能、可靠的穩定性和豐富的功能,成 ...
前言
SQLite是一種輕量級的關係型資料庫管理系統,支持跨平臺操作。它可以嵌入到程式中,無需單獨的伺服器進程或者配置文件,減少了資料庫維護的負擔和運行的複雜性。SQLite的數據存儲在單個文件中,方便備份、傳輸和分享,也容易進行版本管理。SQLite擁有良好的性能、可靠的穩定性和豐富的功能,成為了許多應用程式和操作系統中的首選資料庫解決方案。
話不多說,現在切入正題
讓我一步一步帶你增刪改查。
安裝
Install-Package DbCRUD.SqlLite 安裝包
資料庫連接及初始化
//資料庫連接
IDbCRUD testdb = new SqlLiteCRUD($@"Data Source=sqlitedb.db; Cache=Shared");
插入數據
int dbcount =testdb.TableExists(tb_custormer)? testdb?.Count(tb_custormer)??0: 0;
//**同步插入對象數據
var customer = new CrudTestModel
{
ID = dbcount + 1, ////實體類,ID不賦值,預設根據數據類型自動整數編號,支持int,long,objectid
Name = "對象插入",
Phones = new string[] { "80000", "90000" },
Dic = new Dictionary<string, object>
{
{ "Name", "嵌套數據" },
{ "DDate", DateTime.Now }
},
IsActive = true,
};
//**同步插入字典數據
var dic1 = new Dictionary<string, object>
{
//{ "ID", 1 },//***如果不指定ID,插入時會自動編一個int的唯一ID
{ "Name", "自動編號插入" },
{ "Qty", DateTime.Now.Minute},
{ "DDate", DateTime.Now }
};
var result11 = testdb.Insert(autoIDData, dic1);
//**批量插入列表
List<Dictionary<string, object>> listdata = new List<Dictionary<string, object>>();
int maxid = testdb.Max<int>(dictable);
for (int i = 0; i < 10; i++)
{
maxid++;
var dic2 = new Dictionary<string, object>
{
{ "ID",maxid },
{ "Name", $"批量插入{i}" },
{ "Qty", 19+maxid},
{ "DDate", DateTime.Now }
};
listdata.Add(dic2);
}
var listResult= testdb.Insert(dictable, listdata);
更新數據
//更新前
var updatepre = testdb.Find<Dictionary<string, object>>(dictable, "ID=2")?.FirstOrDefault();
var updata = new Dictionary<string, object>
{
{ "Name", "更新指定欄位數據" },
{ "Qty", 600}
};
var upresult = testdb.UpDate(dictable, updata, "ID=2"); //更新ID=2的數據
Assert.IsTrue(upresult.Stutas);
//更新後
var getupdata = testdb.Find<Dictionary<string, object>>(dictable, "ID=2")?.FirstOrDefault();
Assert.AreEqual(300, getupdata.GetValueOrDefault("Qty", 0));
更新及插入數據(數據存在更新,不存在插入)
//** 更新或插入數據
var dic1 = new Dictionary<string, object>
{
{ "ID", 2 },
{ "Name", "插入或更新單條數據" },
{ "Qty", 200},
{ "DDate", DateTime.Now }
};
var result= testdb.Upsert(dictable, dic1);
//** 批量插入或更新
var dic3 = new Dictionary<string, object>
{
{ "ID", 3 },
{ "Name", "批量插入或更新" },
{ "Qty", 300},
{ "DDATE", DateTime.Now }
};
List<Dictionary<string,object>> listdata=new List<Dictionary<string, object>> { dic3,dic1};
var listresult = testdb.Upsert(dictable, listdata);
查詢數據
//查找id=2的數據
var databyid = testdb.FindByID<Dictionary<string, object>>(dictable,2);
//查找Qty>10的數據
var wheredata = testdb.Find<Dictionary<string, object>>(dictable, "Qty>10");
//sql語句查找的數據
string sqlcmd = $"select * from {dictable}";
var sqldata = testdb.Find<Dictionary<string, object>>(sqlcmd);
//分頁查找的數據
var pagedata = testdb.GetPagingData<Dictionary<string, object>>(dictable, "Qty>10",pageindex:1,pagenumber:10);
刪除數據
//**刪除_id=3的數據
var result = testdb.Delete(dictable,3);
//**刪除qty<30的數據
var wherresult = testdb.Delete(dictable, "Qty<30");
//**使用sql語句刪除_id=30的數據
string sql = $"delete {dictable} where _id=30";
var sqlresult = testdb.Delete(sql);
更多使用方法請移步到倉庫 https://gitee.com/lzcode/db-crud
做了就有可能!我的分享希望能給你帶去幫助,您的打賞是我繼續為您分享的動力。