前言
我們在開發應用是經常會需要用到一些資料的儲存,儲存的方式有多種,使用資料庫是一種比較受大家歡迎的方式。但是對於一些小型的應用,如一些移動app,通常的資料庫過於龐大,而輕便的sqlite則能解決這一問題。不但操作方便,而且只需要要乙個檔案即可,在這裡我們來說一說使用c#語言操作sqlite資料庫。
一、nuget引入sqlite庫
在vs選單:工具→nuget包管理器→管理解決方案的nuget程式包 開啟nuget解決方案視窗。
搜尋 sqlite,選擇官方的庫安裝到指定的專案中。:
提示:system.data.sqlite 分為 x86 和 x64 版本,這裡推薦使用nuget自動安裝。使用 any cpu 編譯的時候,會自動拷貝32位和64位 interop dll檔案到子目錄中。程式執行的時候會根據電腦的執行環境自動選擇合適的dll。
二、dbhelper類庫
using system.collections.generic;
using system.data;
using system.data.sqlite;
using system.configuration;
using system.data.sqlclient;
//using mysql.data.mysqlclient;
namespace consoleapp5
//執行非查詢語句
public static int executenonquery(idbconnection conn, string sql, dictionary parameters)
return cmd.executenonquery();
}} //執行非查詢語句-獨立連線
public static int executenonquery(string sql, dictionary parameters)
}//查詢首行首列
public static object executescalar(idbconnection conn, string sql, dictionary parameters)
return cmd.executescalar();
}} //查詢首行首列-獨立連線
public static object executescalar(string sql, dictionary parameters)
}//查詢表
public static datatable executequery(idbconnection conn, string sql, dictionary parameters)
using (idatareader reader = cmd.executereader())
}return dt;
} //查詢表--獨立連線
程式設計客棧 public static datatable executequery(string sql, dictionary parameters)}}}
三、基本使用
1. 判斷資料檔案是否存在
///
/// 檢查資料庫是否存在不存在建立
///
///
public static bool checkdatabase()
return true;
} catch (exception)
}2. 判斷表是否存在
///
/// 檢查資料表是否存在,不存在建立
///
///
public static bool checkdatatable(string connstr)
else if (tablecount > 1)
else
}} catch (exception ex)
}3. 查詢
string sql = "select * from serverinfo where name =@servername and url = @url and date(createtime)=date(@date);";
dictionary parameters = new dictionary();
parameters.add("servername",endpointelement.name);
parameters.add("url", endpointelement.address);
parameters.add("date", datetime.now.tostring("yyyy-mm-dd"));
datatable dt=sqlitehelper.executequery(connstr, sql, parameters);
if (dt.rows.count>0)
4. 新增/修改
//存在更新,不存在插入
string updatesql = "replace into serverinfo(name,url,delaytime,usagecounter, status,createtime) values(@name,@url,@delaytime,@usagecounter,@status, @createtime)";
dictionary ups = new dictionary();
ups.add("name", name);
ups.add("url", url);
ups.add("delaytime", delaytime);
ups.add("usagecounter", usagecounter);
ups.add("status", status);
ups.add("createtime", datetime.now.tostring("yyyy-mm-dd hh:mm:ss"));
int count= sqlitehelper.executenonquery(connstr, updatesql, ups);
if (count>0)
else
5. 刪除
//刪除記錄
string updatesql =
"delete from serverinfo where content=@content and flag=@flag;";
dictionary updateparameters = new dictionary();
updateparameters.add("content", content);
updateparameters.add("flag", flag);
int count = sqlitehelper.ewww.cppcns.comxecutenonquery(connstr, updatesql, updateparameters);
if (count > 0)
else
四、參考文章
總結本文標題: c# sqlite資料庫入門使用說明
本文位址:
c sqlite 資料庫加密
用了 ado.net 2.0 sqlite data provider 這樣可以直接利用它來建立乙個 加密的sqlite資料庫。有關c 如下 1 建立空的sqlite資料庫。資料庫名的字尾你可以直接指定,甚至沒有字尾都可以 方法一 建立乙個空sqlite資料庫,用io的方式 filestream f...
C Sqlite 資料庫加密
用了ado.net 2.0 sqlite data provider 這樣可以直接利用它來建立乙個加密的sqlite資料庫。有關c 如下 1 建立空的sqlite資料庫。資料庫名的字尾你可以直接指定,甚至沒有字尾都可以 方法一 建立乙個空sqlite資料庫,用io的方式 filestream fs ...
入門Django ,使用sqlite資料庫
入門django 使用sqlite資料庫 1.建立工程 django admin startproject project name 2.建立應用 3.開啟admin應用 在settings.py檔案裡新增admin應用 django.contrib.admin 在url.py檔案裡新增 from ...