Sqlite在C#中的應用
原文:http://blog.csdn.net/Ricekeg/article/details/4763144
在 .NET 裡面使用 SQLite, 我這裡使用的wrapper是 System.Data.SQLite,它只需要一個dll,介面符合ADO.NET2.0的定義,效能也不錯,NHibernate用的也是它,目前支援ADO.Net 3.5了,支援整合在 VS2005 和 VS2008裡面,而且支援wince,是個亮點
因為符合ADO.NET的規範,所以使用方式,基本和 SqlClient, OleDb等原生的一致
using System.Data;
using System.Data.SQLite;
//...
using (SQLiteConnection cn = new SQLiteConnection(
"Data Source=Test.db3;Pooling=true;FailIfMissing=false")
)
//Pooling設定為true時,SQL連線將從連線池獲得,如果沒有則新建並新增到連線池中,預設是true。
//FailIfMissing預設為false,如果資料庫檔案不存在,會自動建立一個新的,若設定為true,將不會建立,而是丟擲異常資訊。
{
//在開啟資料庫時,會判斷資料庫是否存在,如果不存在,則在當前目錄下建立一個
cn.Open();
using (SQLiteCommand cmd = new SQLiteCommand())
{
cmd.Connection = cn;
//建立表,如果表已經存在,則報錯
cmd.CommandText = "CREATE TABLE [test] (id int, name nvarchar(20))";
cmd.ExecuteNonQuery();
//插入測試資料
for (int i = 2; i < 5; i++)
{
cmd.CommandText = string.Format("INSERT INTO [test] VALUES ({0}, '杜思波技術討論區域')", i);
cmd.ExecuteNonQuery();
}
for (int i = 5; i < 10; i++)
{
cmd.CommandText = string.Format("INSERT INTO [test] VALUES ({0}, 'English Test')", i);
cmd.ExecuteNonQuery();
}
//讀取資料
cmd.CommandText = "SELECT * FROM [test]";
using (SQLiteDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
{
while (dr.Read())
{
Console.WriteLine("第{0} 條:{1}", dr.GetValue(0), dr.GetString(1));
}
}
}
}
在C#中使用SQLite
1、通過Add References引用SQLite ADO .NET安裝目錄的bin目錄下的System.Data.SQLite.DLL。
2、建立資料庫檔案:因為始終是個0位元組檔案,應該利用IO也可以(?!)。
System.Data.SQLite.SQLiteConnection.CreateFile(datasource);3、連線資料庫
System.Data.SQLite.SQLiteConnection conn =new System.Data.SQLite.SQLiteConnection(connectionString);connectionString中包含了資料庫的一些配置資訊,比如資料庫檔案,資料庫開啟的密碼等,可以利用System.Data.SQLite.SQLiteConnectionStringBuilder來輔助建立connectionString
4、建立表、讀取資料等和Access或MS SQL沒多大區別了
//建立一個數據庫檔案
string datasource="h:/test.db";
System.Data.SQLite.SQLiteConnection.CreateFile(datasource);
//連線資料庫
System.Data.SQLite.SQLiteConnection conn =new System.Data.SQLite.SQLiteConnection();
System.Data.SQLite.SQLiteConnectionStringBuilder connstr =new System.Data.SQLite.SQLiteConnectionStringBuilder();
connstr.DataSource = datasource;
connstr.Password ="admin";//設定密碼,SQLite ADO.NET實現了資料庫密碼保護
conn.ConnectionString = connstr.ToString();
conn.Open();
//建立表
System.Data.SQLite.SQLiteCommand cmd =new System.Data.SQLite.SQLiteCommand();
string sql ="CREATE TABLE test(username varchar(20),password varchar(20))";
cmd.CommandText=sql;
cmd.Connection=conn;
cmd.ExecuteNonQuery();
//插入資料
sql ="INSERT INTO test VALUES('ekinglong','mypassword')";
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
//取出資料
sql ="SELECT * FROM test";
cmd.CommandText = sql;
System.Data.SQLite.SQLiteDataReader reader = cmd.ExecuteReader();
StringBuilder sb =new StringBuilder();
while (reader.Read())
{
sb.Append("username:").Append(reader.GetString(0)).Append("/n")
.Append("password:").Append(reader.GetString(1));
}
MessageBox.Show(sb.ToString());
相關推薦
dropzone拖動文件上傳在thinkphp5中應用一個實例
php dropzone參考:Dropzone的使用方法點擊查看dropzone中文文檔後臺用的INSPINIA框架的模板,裏面有,dropzone.jsdropzone是一個可以拖文件上傳的js.拖進去,就上傳了。我在頁面上,寫了一個保存已經上傳的文件的image3,image4.這就需要改寫一下dropz
MFC ocx IE中應用相關問題
如果 選項卡 原因 -h spa 問題 tom 刷新 cls 一、IE中調用控件時碰到過的問題 1、控件發消息讓IE退出 ::PostMessage(m_hwnd, WM_DESTROY, 0, 0); //m_hwnd為ie的窗口句柄 ::PostMes
Java 容器在實際web項目中應用
有用 找到 style view ram 知識 arc 的確 例子 前言:在java開發中我們離不開集合數組等,在java中有個專有名詞:“容器” ,下面會結合Thinking in Java的知識和實際開發中業務場景講述一下容器在Web項目中的用法。可結合圖片代碼了解Ja
(轉)基於MVC4+EasyUI的Web開發框架經驗總結(6)--在頁面中應用下拉列表的處理
ica new web開發 don ext images 如果 bob 獲取 http://www.cnblogs.com/wuhuacong/p/3840321.html 在很多Web界面中,我們都可以看到很多下拉列表的元素,有些是固定的,有些是動態的;有些是字典內容,
php中應用memcached
txt 主機 memcached nbsp configure pool lib php5 共享 PHP連接Memcached 先安裝php的memcache擴展 # wget http://ip/data/attachment/forum/memcache-2.2.3.
Java 數據類型在實際開發中應用二枚舉
項目 arraylist font 編譯器 tid null left join 基本 size 在實際編程中,往往存在著這樣的“數據集”,它們的數值在程序中是穩定的,而且“數據集”中的元素是有限的。在JDK1.5之前,人們用接口來描述這一種數據類型。 1.5以後引入枚
在C#代碼中應用Log4Net(三)Log4Net中配置文件的解釋
images rdquo files read 出現 插入 tof stat 日誌 <log4net> <!-- 錯誤日誌類--> <logger name="logerror"> <level value
深度學習在 CTR 中應用
核心 融合 輸出 -s 情況 ... 能夠 rec 數據 歡迎大家前往騰訊雲技術社區,獲取更多騰訊海量技術實踐幹貨哦~ 作者:高航 一. Wide&&Deep 模型 首先給出Wide && Deep [1] 網絡結構: 本質上是線性模
谷歌playstore中應用下載量已超150億次
.cn odi dex odm www wot mdi mdm odex peerjs%E5%AE%9E%E7%8E%B0%E6%B5%8F%E8%A7%88%E5%99%A8%E5%AF%B9%E7%AD%89%E8%BF%9E%E6%8E%A5%E7%9A%84js%E
Spring.net介紹及MVC中應用
text name default 轉變 業務層 核心 解耦 inf star Spring.net兩大核心內容: IOC(控制反轉) 傳統的面相對象思維模式是對象A依賴對象B,對象B的實例化和調用都在對象A中發生,一旦對象B中發生變化,對象A也要隨之變化,這樣使得
SQL Server 2005/2008/2012中應用分布式分區視圖
lag tails soft 9.png .aspx 並且 例如 () 根據 自2000版本起,SQL Server企業版中引入分布式分區視圖,允許你為分布在不同的SQL 實例的兩個或多個水平分區表創建視圖。 簡要步驟如下:根據Check約束中定義的一組值把大表分
高性能緩存系統Memcached在ASP.NET MVC中應用
index req 緩存系統 help add nts .... ont p s 首先下載windows平臺下的memcached,然後安裝。安裝完之後就是啟動memcached服務了,你可以在cmd下用dos命令輸入,也可以在計算機管理->服務->memcac
linux中應用程序的安裝與管理
模式 練習 fig 分享圖片 ctr watermark 選擇 str size 在基本的系統安裝完成之後,為了進一步提高服務器的易用性,我們就需要為其安裝一些用於服務器管理及桌面環境的應用程序。我們這裏選擇的是代碼包編譯的方式安裝zhcon中文虛擬控制臺。 這裏
Parquet性能測試之項目實踐中應用測試
count 測試結果 直接 存儲 1.2 只讀 求最大值 文件存儲 效率 因為從事大數據方面的工作,經常在操作過程中數據存儲占空間過大,讀取速率過慢等問題,我開始對parquet格式存儲進行了研究,下面是自己的一些見解(使用的表都是項目中的,大家理解為寬表即可): 一、Sp
Python中paramiko模塊在linux運維中應用
python linux 運維 python的paramiko模塊可以實現ssh客戶端的功能,使用起來也比較簡單。但是當服務器非常多的時候,每臺服務器上執行完全相同的簡單操作,也會花費大量的時間。 下載模塊:paramiko.tar.gz使用tar解壓後在cd到目錄下最後使用rpm安裝 rpm -ivh
Android中應用安裝分析
generate upgrade 版本 線程 title 回調函數 ebe children 應用商店 #1 安裝方式 1 安裝系統APK和預制APK時,通過PMS的構造函數中安裝,即第一次開機時安裝應用,沒有安裝界面。 2 網絡下載安裝,通過應用商店等,即調用Packa
IIS 之 在IIS7、IIS7.5中應用程序池最優配置方案
定期 target 註冊 enable 間隔 images pre .net 微軟 找到Web站點對應的應用程序池,“應用程序池” → 找到對應的“應用程序池” → 右鍵“高級設置...” 一、一般優化方案 1、基本設置 [1] 隊列長度: 默認值100
報表模板 — 在項目管理中應用數據報表分析
結構 學校 表設計 整體 資源 模板 font padding https 項目管理是在項目活動中運用專門的知識、技能、工具和方法,使項目能在有限資源下,實現或超過設定的需求和期望的過程,是對成功地達成一系列目標相關的活動的整體監測和管控。無論是在大型工程、軟件開發、系統制
在 js 中應用 訂閱釋出模式(subscrib/public)
什麼是釋出-訂閱者模式 我們在使用釋出-訂閱者模式之前,先了解什麼是釋出-訂閱者模式。簡單來說,釋出訂閱者模式就是一種一對多的依賴關係。多個訂閱者(一般是註冊的函式)同時監聽同一個資料物件,當這個資料物件發生變化的時候會執行一個釋出事件,通過這個釋出事件會通知到所有的訂閱者,使它
composer laravel中應用
1:composer安裝好laravel框架進行裝包操作 先更新作曲家命令作曲家更新 在composer.json中加入國內映象源 “repositories” : { “packagist” : { “type” :“composer” , “url” :“