C#資料本地儲存方案之SQLite
即使是做網路應用,在斷線情況下,也需要考慮資料的本地儲存。在SQLite出現之前,資料量大的情況下,我們一直使用ACCESS,資料量小,則檔案儲存。ACCESS不支援事務原子性,在斷電情況下(這種情況總是會發生)會導致資料很難恢復。
一:安裝
SQLITE,是一款輕型的資料庫,是遵守ACID的關聯式資料庫管理系統。我直接使用的是http://sqlite.phxsoftware.com/(An open source ADO.NET provider for the SQLite database engine)。下載完畢是一個EXE,安裝後根目錄如下:
Bin下有一個測試工具,可以檢視本地執行SQLITE的各項效能指標。
二:新建資料庫
安裝完畢後,開啟visual studio,新建資料連線,可以看到資料來源多了一項SQLite。
新建連線,如下圖。SQLITE的資料庫,儲存後是一個檔案。
三:資料庫維護
可以在VS中方面的維護SQLITE資料,如下圖:
可以在VS中使用類似SQL查詢分析器的功能,如下圖:
四:混合模式
安裝完畢,可以直接在專案集的引用中,多了
System.Data.SQLite
System.Data.SQLite.Linq
兩個程式集,由於http://sqlite.phxsoftware.com/的System.Data.SQLite是混合模式程式集,是針對“v2.0.50727”版的執行時生成的,在沒有配置其他資訊的情況下,無法在 4.0 執行時中載入該程式集。故需要在App.config中配置如下引數。
<?xml version="1.0" encoding="utf-8" ?> <configuration> <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0"/> </startup> </configuration>
五:SQLiteHelper
最後,提供一個自己寫的SQLiteHelper:
using System; using System.Collections.Generic; using六:附註 SQLite官方網站: http://www.sqlite. org/ 時第一眼看到關於SQLite的特性。 1. ACID事務 2. 零配置 – 無需安裝和管理配置 3. 儲存在單一磁碟檔案中的一個完整的資料庫 4. 資料庫檔案可以在不同位元組順序的機器間自由的共享 5. 支援資料庫大小至2TB 6. 足夠小, 大致3萬行C程式碼, 250K 7. 比一些流行的資料庫在大部分普通資料庫操作要快 8. 簡單, 輕鬆的API 9. 包含TCL繫結, 同時通過Wrapper支援其他語言的繫結 10. 良好註釋的原始碼, 並且有著90%以上的測試覆蓋率 11. 獨立: 沒有額外依賴 12. Source完全的Open, 你可以用於任何用途, 包括出售它 13. 支援多種開發語言,C, PHP, Perl, Java, ASP .NET,PythonSystem.Linq; using System.Text; using System.Data.SQLite; using System.Data; using System.Data.Common; namespace Com.Luminji.DataService.SQLHelpers { public class SQLiteHelper { /// <summary> /// ConnectionString樣例:Data Source=Test.db3;Pooling=true;FailIfMissing=false /// </summary> public static string ConnectionString { get; set; } private static void PrepareCommand(SQLiteCommand cmd, SQLiteConnection conn, string cmdText, params object[] p) { if (conn.State != ConnectionState.Open) conn.Open(); cmd.Parameters.Clear(); cmd.Connection = conn; cmd.CommandText = cmdText; cmd.CommandType = CommandType.Text; cmd.CommandTimeout = 30; if (p != null) { foreach (object parm in p) cmd.Parameters.AddWithValue(string.Empty, parm); } } public static DataSet ExecuteQuery(string cmdText, params object[] p) { using (SQLiteConnection conn = new SQLiteConnection(ConnectionString)) { using (SQLiteCommand command = new SQLiteCommand()) { DataSet ds = new DataSet(); PrepareCommand(command, conn, cmdText, p); SQLiteDataAdapter da = new SQLiteDataAdapter(command); da.Fill(ds); return ds; } } } public static int ExecuteNonQuery(string cmdText, params object[] p) { using (SQLiteConnection conn = new SQLiteConnection(ConnectionString)) { using (SQLiteCommand command = new SQLiteCommand()) { PrepareCommand(command, conn, cmdText, p); return command.ExecuteNonQuery(); } } } public static SQLiteDataReader ExecuteReader(string cmdText, params object[] p) { using (SQLiteConnection conn = new SQLiteConnection(ConnectionString)) { using (SQLiteCommand command = new SQLiteCommand()) { PrepareCommand(command, conn, cmdText, p); return command.ExecuteReader(CommandBehavior.CloseConnection); } } } public static object ExecuteScalar(string cmdText, params object[] p) { using (SQLiteConnection conn = new SQLiteConnection(ConnectionString)) { using (SQLiteCommand command = new SQLiteCommand()) { PrepareCommand(command, conn, cmdText, p); return command.ExecuteScalar(); } } } } }
相關推薦
C#資料本地儲存方案之SQLite
即使是做網路應用,在斷線情況下,也需要考慮資料的本地儲存。在SQLite出現之前,資料量大的情況下,我們一直使用ACCESS,資料量小,則檔案儲存。ACCESS不支援事務原子性,在斷電情況下(這種情況總是會發生)會導致資料很難恢復。 一:安裝 SQLITE,是一
C# SQLite資料本地儲存方案
即使是做網路應用,在斷線情況下,也需要考慮資料的本地儲存。在SQLite出現之前,資料量大的情況下,我們一直使用ACCESS,資料量小,則檔案儲存。ACCESS不支援事務原子性,在斷電情況下(這種情況總是會發生)會導致資料很難恢復。powered by 25175.net
Android五種資料儲存方式之SQLite資料庫儲存 載入SD卡資料庫 sql操作 事務 防止SQL注入
資料庫 前言 資料庫儲存 資料庫建立 內建儲存資料庫 外接儲存資料庫 編寫DAO 插入操作 更新操作 刪除操作 查詢操作
CocosCreator之KUOKUO帶你做主角資料本地儲存加拖尾加攝像機緩跟隨加無限地面-四合一教程
本次引擎2.0.5 編輯工具VSCode 目標1:本地儲存 新建個工程,加個單色背景,加個標籤,加兩個按鈕(文字為‘升級’和‘儲存’): 好了,讓我們新建個指令碼綁在Canvas上 main.js 在載入時獲取資料,如果沒有,給初始值。 給兩個按鈕寫方法:
Spark專案實戰-資料傾斜解決方案之原理以及現象分析
一、資料傾斜的原理 在執行shuffle操作的時候,大家都知道是按照key來進行values的資料的輸出、拉取和聚合的。同一個key的values,一定是分配到一個reduce task進行處理的。假設多個key對應的values,總共是90萬。但是問題是可能某個key對應
Spark專案實戰-資料傾斜解決方案之將reduce join轉換為map join
一、reduce端join操作原理 二、map端join操作原理 三、適用場景 如果兩個RDD要進行join,其中一個RDD是比較小的。一個RDD是100萬資料,一個RDD是1萬資料。(一個RDD是1億資料,一個RDD是100萬資料) 其中一個RDD必須是比較
C資料結構-線性表之單鏈表
線性表之單鏈表 單鏈表的設計之初,筆者在考慮一個首要的問題,就是單鏈表的節點是在插入的函式內部建立,還是在函式外部建立。考慮到使用者在插入的時候,變數生命週期的不確定性以及容易造成記憶體洩漏等問題,綜合考慮之下使用了內部建立節點的方式。筆者設計的單鏈表中包含了單鏈表的反轉和合並等有趣的操作,
C資料結構-線性表之順序表
線性表之順序表 順序表使用C語言的原生陣列作為儲存結構,使用者指定陣列的大小,動態的申請堆空間。動態設計的好處比事先用巨集定義規定大小更加靈活,而且支援順序表的重置大小操作。使得使用順序表的人擁有更大的靈活性,節省執行記憶體。順序表結構體的定義使用了柔性陣列,這一點使得我們在操作順序表
Mybatis 只返回一條資料的解決方案 之association、collection
:[StudentC{sid=14, sname='null', sage=null, saddress='null', classS=ClassS{id=345345345, className='二班', studentId=null, students=null}}, StudentC{sid=15,
spark 大型專案實戰(五十八):資料傾斜解決方案之sample取樣傾斜key進行兩次join
當採用隨機數和擴容表進行join解決資料傾斜的時候,就代表著,你的之前的資料傾斜的解決方案,都沒法使用。 這個方案是沒辦法徹底解決資料傾斜的,更多的,是一種對資料傾斜的緩解。 原理,其實在上一講,已經帶出來了。 步驟: 1、選擇一個RDD,要用flatM
資料傾斜解決方案之原理以及現象分析
資料傾斜 在任何大資料類的專案中,都是最棘手的效能問題,最能體現人的技術能力,最能體現RD(Research Developer,研發工程師)的技術水平。 資料傾斜 = 效能殺手 如果沒有豐富的經驗,或者沒有受過專業的技術培訓,是很難解決資料傾斜問題的 在執行shuff
深入剖析SRDF/Mtreo和MetroSync雙活資料中心儲存方案
文章有彩蛋,集中精力就會發現;十多分鐘的短片濃縮了百萬IT技術人的身影。
HDFS資料遷移解決方案之DistCp工具的巧妙使用分析
前言 在當今每日資訊量巨大的社會中,源源不斷的資料需要被安全的儲存.等到資料的規模越來越大的時候,也許瓶頸就來了,沒有儲存空間了.這時候怎麼辦,你也許會說,加機器解決,顯然這是一個很簡單直接但是又顯得有些欠缺思考的辦法.無謂的加機器只會帶來無限上升的成本消耗,更好的辦法應該是做到更加精細化的資料
東湖行 | 優雲數智UMStor展示PB級資料湖儲存方案實力
在近日舉行的2018全球快閃記憶體技術峰會上,優雲數智攜旗下具有“CBA”氣息的儲存系統——UMStor來到武漢東湖之濱的光谷科技會展中心,向參會者展示PB級資料湖儲存方案實力。 資料流衝擊日益凸顯 100多年前,“千湖之地”武漢湖泊星羅棋佈,沙湖、東湖、白洋湖相通,因無
[C++] 資料的儲存方式
C++中儲存方式是通過儲存持續性,連結性和作用域來描述的。 1.儲存持續性 儲存持續性是指變數在記憶體中保留的時間,C++中共提供了四種持續性: 1.自動儲存持續性:在函式中或程式碼塊中定義的變數,其儲存持續性為自動持續儲存; 2.靜態儲存持續性:在函式外定義
HTML 5 中WebStorage實現資料本地儲存
webstorage 分sessionStorage和localstorage,sessionStorage是臨時儲存,localStorage是永久儲存。 sessionStorage如果瀏覽器關閉了,資料就沒有了,而localStorage則不會。 sessionSto
iOS開發————資料本地化儲存方式之Keychain
iOS的keychain服務提供了一種安全的儲存私密資訊(密碼,序列號,證書等)的方式,每個ios程式都有一個獨立的keychain儲存。相對於NSUserDefaults、檔案儲存等一般方式,keychain儲存更為安全,而且keychain裡儲存的資訊不會因App被刪除
資料的儲存方案
C++中,根據資料儲存在記憶體中的時間長短,分為四種不同的方案來儲存資料。 1.自動儲存持續性 2.靜態儲存持續性 3.執行緒儲存持續性(C++11),不介紹。 4.動態儲存持續性 ——————————————————————————————————————————
c資料結構線性表之單鏈表(帶頭結點)基本操作
#include<stdio.h> #include<malloc.h> #define MAXSIZE 10 #define ElemType char #define OK 1 #define ERROR 0 typedef struct Nod
HTML5+的離線本地儲存方案
HTML5+的離線本地儲存有如下多種方案:HTML5標準方案:cookie、localstorage、sessionstorage、websql、indexedDBHTML5Plus擴充套件方案:plus.storage、plus.iocookie:體量最小,可以設定過期時間