1. 程式人生 > >Sqlite在C#中的應用

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

Pythonparamiko模塊在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” :“