校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > C#中使用SQLite數據庫的方法介紹

C#中使用SQLite數據庫的方法介紹

熱門標簽:陜西人工外呼系統哪家好 山西防封卡電銷卡套餐 云南外呼電銷機器人系統 浙江外呼系統怎么安裝 廈門商鋪地圖標注 海外地圖標注門市標 上海楊浦怎么申請申請400電話 地圖標注多個行程 銅川小型外呼系統運營商
【SQLite管理工具簡介】
推薦以下2款:
Navicat for SQLite:功能非常強大,幾乎包含了數據庫管理工具的所有必需功能,操作簡單,容易上手。唯一的缺點是不能打開由System.Data.SQLite.dll加密過的數據庫。
Database.Net:臺灣人用.net開發的全能數據庫管理工具,可以管理多種數據庫,包括MSSQL、MYSQL、IBM DB2、Oracle、Access、Excel、OleDb、Odbc等十多種數據庫(或數據接口),功能沒有Navicat那么多,只包含最基本功能。對SQLite而言,Database.Net最大的優點是支持打開由System.Data.SQLite.dll加密過的數據庫,且可以隨時對數據庫設置密碼,是.net下開發SQLite必備的小工具。下載地址:http://fishcodelib.com/Database.htm 腳本之家下載地址 https://www.jb51.net/database/41238.html
建議以Navicat for SQLite為主,Database.Net為輔,只要涉及到數據庫加密時才用后者。
【操作SQLite實例】
操作SQlite的方法基本同其他數據庫相同,但有一些區別:
『例1』整數似乎都是Int64的。
查詢出網站App_Data目錄下“省市.db”數據庫中city表的總記錄數
復制代碼 代碼如下:

SQLiteConnection cn = new SQLiteConnection("Data Source=|DataDirectory|省市.db;Version=3");
SQLiteCommand cmd = new SQLiteCommand("select count(*) from city", cn);
cn.Open();
int recordCount = (int)(Int64)cmd.ExecuteScalar();
cn.Close();
Response.Write(recordCount);

SQLite中count函數返回的是一個Int64的整數,這一點同MSSQL、Access等不同。實際上,經過有限的使用發現,似乎所有INTEGER字段的返回值都是Int64,這一點未經過有效證實。ExecuteScalar方法返回一個object實例,按照C#規定,拆箱時進行標準轉換,必須轉換成該object實例實際存儲的格式,因此分兩步,先轉換成Int64,再轉換成int。當然用.net中某些高級轉換器如Convert.ToInt32方法只要一步就可以了。
『例2』批量增刪改時需要用事務,否則效率很低。
批量插入1000條記錄,每條記錄只有簡單的id、name、password三個字段:
復制代碼 代碼如下:

SQLiteConnection cn = new SQLiteConnection("Data Source=c:\\測試.db3;Version=3;password=12345");
SQLiteCommand cmd = new SQLiteCommand("select count(*) from test", cn);
cn.Open();
int recordCount = (int)(Int64)cmd.ExecuteScalar();
Response.Write("當前的總記錄數:" + recordCount + "br/>");
for (int i = 0; i 1000; i++)
{
cmd.CommandText = "insert into test values(@id,@name,@password)";
cmd.Parameters.AddWithValue("@id", i);
cmd.Parameters.AddWithValue("@name", "姓名" + i);
cmd.Parameters.AddWithValue("@password", (i * 2).ToString());
cmd.ExecuteNonQuery();
}
cmd.CommandText = "select count(*) from test";
recordCount = (int)(Int64)cmd.ExecuteScalar();
cn.Close();
Response.Write("當前的總記錄數:" + recordCount + "br/>");

經過測試,這段代碼中的for循環花費了70000~90000毫秒,一分鐘多!
改用事務執行:
復制代碼 代碼如下:

SQLiteConnection cn = new SQLiteConnection("Data Source=c:\\測試.db3;Version=3;password=12345");
SQLiteCommand cmd = new SQLiteCommand("select count(*) from test", cn);
cn.Open();
int recordCount = (int)(Int64)cmd.ExecuteScalar();
Response.Write("當前的總記錄數:" + recordCount + "br/>");
SQLiteTransaction tran = cn.BeginTransaction();
cmd.Transaction = tran;
try
{
for (int i = 0; i 1000; i++)
{
cmd.CommandText = "insert into test values(@id,@name,@password)";
cmd.Parameters.AddWithValue("@id", i);
cmd.Parameters.AddWithValue("@name", "姓名" + i);
cmd.Parameters.AddWithValue("@password", (i * 2).ToString());
cmd.ExecuteNonQuery();
}
tran.Commit();
}
catch
{
tran.Rollback();
Response.Write("執行出錯!");
}
finally
{
cmd.CommandText = "select count(*) from test";
recordCount = (int)(Int64)cmd.ExecuteScalar();
cn.Close();
Response.Write("當前的總記錄數:" + recordCount + "br/>");
}

經過測試,這段代碼中的try部分只用了100~150毫秒!開啟事務后,效率非常高!
『例3』一般開發中可以編寫自己的數據庫通用操作類,進一步封裝ADO.NET。
如上面用事務操作的代碼,改用數據庫通用操作類后:
復制代碼 代碼如下:

SQLiteData md = new SQLiteData("Data Source=c:\\測試.db3;Version=3;password=12345");
int recordCount = (int)(Int64)md.ExecuteScalar("select count(*) from test");
Response.Write("當前的總記錄數:" + recordCount + "br/>");
md.CreateTransaction();
try
{
for (int i = 0; i 1000; i++)
md.ExecuteNonQuery("insert into test values(@id,@name,@password)", "@id", i, "@name", "姓名" + i, "@password", (i * 2).ToString());
md.CommitTransaction();
}
catch
{
md.RollBack();
Response.Write("執行出錯!");
}
finally
{
recordCount = (int)(Int64)md.ExecuteScalar("select count(*) from test");
md.Close();
Response.Write("當前的總記錄數:" + recordCount + "br/>");
}

可以看到代碼精簡了很多。

【SQLite相關有用的鏈接地址】

SQLite官方網站:http://www.sqlite.org/

SQLite內置核心函數參考文檔:http://www.sqlite.org/lang_corefunc.html

SQLite日期時間函數參考文檔:http://www.sqlite.org/lang_datefunc.html

SQLite數學函數參考文檔:http://www.sqlite.org/lang_aggfunc.html

SQLite相關SQL語法參考文檔:http://www.sqlite.org/lang.html

System.Data.SQLite.dll數據訪問驅動下載地址:http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki

您可能感興趣的文章:
  • C#操作SQLite數據庫方法小結(創建,連接,插入,查詢,刪除等)
  • ASP.NET(C#)中操作SQLite數據庫實例
  • c#幾種數據庫的大數據批量插入(SqlServer、Oracle、SQLite和MySql)
  • C#簡單訪問SQLite數據庫的方法(安裝,連接,查詢等)
  • C#基于SQLiteHelper類似SqlHelper類實現存取Sqlite數據庫的方法
  • C#操作SQLite數據庫之讀寫數據庫的方法
  • C#/.Net 中快速批量給SQLite數據庫插入測試數據
  • C#中嵌入SQLite數據庫的簡單方法
  • C#簡單查詢SQLite數據庫是否存在數據的方法
  • C# SQLite數據庫入門使用說明

標簽:信陽 自貢 許昌 西雙版納 孝感 朔州 萊蕪 常州

巨人網絡通訊聲明:本文標題《C#中使用SQLite數據庫的方法介紹》,本文關鍵詞  中,使用,SQLite,數據庫,的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《C#中使用SQLite數據庫的方法介紹》相關的同類信息!
  • 本頁收集關于C#中使用SQLite數據庫的方法介紹的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    日韩欧美一区二区三区在线| 国产精品视频线看| 精品国产一区二区三区忘忧草 | 国产aⅴ综合色| 91成人免费在线| 国产欧美日韩精品a在线观看| 亚洲专区一二三| 成人永久aaa| 欧美一级国产精品| 亚洲国产日产av| 99re视频精品| 久久久久久久久久久黄色| 午夜精品福利一区二区三区蜜桃| 成人av影视在线观看| 日本不卡中文字幕| 在线观看精品一区| 国产精品视频线看| 风间由美一区二区三区在线观看| 日韩视频免费观看高清在线视频| 91福利区一区二区三区| 国产精品乱码人人做人人爱| 久久精品国产网站| 91精品视频网| 欧美特级限制片免费在线观看| 国产精品美女久久久久久久久久久 | 国产专区欧美精品| 在线播放一区二区三区| 一区二区视频在线看| 成人毛片视频在线观看| 国产精品三级视频| 成人精品小蝌蚪| 国产一区二区中文字幕| 日韩精品资源二区在线| 蜜臀av性久久久久蜜臀aⅴ流畅| 亚洲第一电影网| 欧美三级一区二区| 亚洲永久精品国产| 欧美日韩一区精品| 日韩精品电影一区亚洲| 欧美一区二区三区系列电影| 秋霞成人午夜伦在线观看| 欧美一区二区日韩| 久久99深爱久久99精品| 久久综合九色综合97婷婷女人| www精品美女久久久tv| 韩国三级中文字幕hd久久精品| 日韩你懂的在线观看| 国产在线一区二区| 国产亚洲人成网站| 99久久久精品| 亚洲综合精品自拍| 91精品国产福利| 精品一区二区免费看| 欧美激情一二三区| 亚洲欧美激情小说另类| 欧美性色aⅴ视频一区日韩精品| 午夜精品久久久久久久久| 制服丝袜在线91| 国产精品自拍av| 一区在线播放视频| 亚洲一区二区三区四区在线观看 | 欧美一三区三区四区免费在线看| 久久99久久精品| 国产精品电影院| 欧美日韩国产天堂| 久久亚洲捆绑美女| aaa国产一区| 五月婷婷色综合| 国产欧美日韩在线视频| 色拍拍在线精品视频8848| 日本欧美大码aⅴ在线播放| 久久久电影一区二区三区| 欧洲一区在线观看| 国产一区 二区 三区一级| 亚洲免费观看高清完整版在线观看| 爽爽淫人综合网网站| 亚洲国产激情av| 91精品国产色综合久久不卡电影| 国产精品综合视频| 亚洲成a人v欧美综合天堂 | 欧美老女人第四色| 成人av影视在线观看| 男男视频亚洲欧美| 综合亚洲深深色噜噜狠狠网站| 黄色成人免费在线| 一区二区三区在线免费观看| 精品国产免费一区二区三区四区 | 亚洲色欲色欲www| 日韩欧美一级二级三级久久久| 成人午夜视频福利| 日本人妖一区二区| 亚洲乱码国产乱码精品精98午夜 | 一区二区三区四区在线| 欧美精品一区二区三区在线 | 日韩精品欧美精品| 有码一区二区三区| 国产精品女同一区二区三区| 精品日韩在线一区| 欧美性色黄大片手机版| 99久久精品免费| 国产69精品久久777的优势| 九色综合狠狠综合久久| 午夜国产不卡在线观看视频| 一区二区高清视频在线观看| 国产精品毛片无遮挡高清| 久久久久久久精| 精品精品欲导航| 日韩精品一区二区三区四区视频 | 婷婷久久综合九色综合绿巨人| 国产精品视频yy9299一区| 久久久亚洲精品石原莉奈| 欧美一区二区不卡视频| 欧美精品日韩综合在线| 欧美日韩一区二区三区四区五区| 色婷婷精品大在线视频 | 国产精品资源站在线| 美女任你摸久久 | 成人免费视频caoporn| 国产成a人无v码亚洲福利| 国产成都精品91一区二区三| 成人美女在线观看| eeuss鲁一区二区三区| 不卡欧美aaaaa| www.日韩大片| 91亚洲男人天堂| 日本韩国视频一区二区| 欧美私模裸体表演在线观看| 9191精品国产综合久久久久久| 7777精品伊人久久久大香线蕉| 日韩一区二区影院| 久久久精品国产99久久精品芒果 | 老司机精品视频在线| 精品一区中文字幕| 国产一区二区视频在线| 成人在线一区二区三区| 97精品超碰一区二区三区| 在线观看免费成人| 日韩亚洲欧美一区二区三区| 精品伦理精品一区| 中文成人综合网| 亚洲精品国产品国语在线app| 亚洲影院在线观看| 麻豆精品新av中文字幕| 国产精品白丝jk黑袜喷水| 91在线视频免费观看| 欧美日韩的一区二区| 久久综合精品国产一区二区三区 | 免费观看一级特黄欧美大片| 黄一区二区三区| 99久久精品免费| 欧美一区二区三区四区视频| 久久久精品2019中文字幕之3| 欧美午夜精品一区二区三区| 欧美成人video| 椎名由奈av一区二区三区| 亚洲成人免费在线| 国产一区二区三区四区在线观看| 亚洲国产成人porn| 国产成人av福利| 欧美午夜精品久久久| 精品成人一区二区三区| 亚洲精品伦理在线| 国产自产2019最新不卡| 欧美性生活大片视频| 日本一区二区三区视频视频| 亚洲国产人成综合网站| 丁香婷婷综合五月| 欧美日韩国产精品自在自线| 国产精品看片你懂得| 美女精品一区二区| 99久久国产免费看| 日韩免费视频线观看| 亚洲午夜免费福利视频| 国产**成人网毛片九色| 欧美α欧美αv大片| 亚洲男同性恋视频| 国产盗摄精品一区二区三区在线| 欧美精品日日鲁夜夜添| 欧美性大战xxxxx久久久| 国产精品久久久久久久久免费桃花 | 欧美一区二区日韩| 亚洲一区日韩精品中文字幕| 成人h精品动漫一区二区三区| 国产精品综合在线视频| 欧美一级夜夜爽| 亚洲激情自拍视频| 成人午夜短视频| 精品福利在线导航| 热久久国产精品| 欧美日韩免费电影| 亚洲裸体在线观看| 不卡的电影网站| 国产欧美一区二区三区在线老狼| 日本在线不卡一区| 精品视频一区二区不卡| 一区二区欧美国产| 日韩在线播放一区二区| 欧美日韩国产精品成人| 视频在线观看一区| 欧美日韩久久不卡|