C#對SQLite的常用操作
Author: Kagula
Date: 2013-2-18
環境
[1]Visual Studio 2010 Ultimate with SP1
正文
準備工作
從參考資料中下載SQLiteAdministrator工具,新建SQLite資料庫檔案“employees.s3db”,並新增表“employee”。
下面是建這張表所用的SQL語句
CREATETABLE [employee] (
[EMPLOYEE_ID]INTEGER NOT NULL PRIMARY KEYAUTOINCREMENT,
[EMPLOYEE_NAME]VARCHAR(32) NOT NULL,
[EMPLOYEE_AGE]INTEGER DEFAULT '0' NOT NULL
)
在WPF工程中的引用
第一步:從參考資料[2]中下載“SQLite-1.0.66.0-binaries.zip”檔案並解壓縮。
第二步:新建WPF工程並引入“..\bin\ManagedOnly\System.Data.SQLite.DLL”檔案。在project中新建AppData資料夾新增已存在的item,把你剛才新建的SQLite檔案加進專案裡去,設定Item的“Copy to Output”屬性為“Copy if newer”。
第三步:參考資料[4]下載“sqlite-dll-win32-x86-3071502.zip”檔案解壓出“sqlite3.dll”檔案並放到系統資料夾下,例如:“C:\Windows\System32
第四步:參考下面的C#原始碼,對資料庫檔案中的表進行list、新增、刪除、修改操作。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Data.SQLite;
using System.Data;
using System.Data.Common;
using System.Diagnostics;
/**
* Title:演示WPF4工程如何對SQLite資料庫檔案中的表進行操作
* Author:Kagula
* Date:2013-02-18
* Remark:測試環境[1]WinXPSP3[2]VS2010SP1
* */
namespace testSQLiteInWPF
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
String datasource = "AppData\\employees.s3db";
SQLiteConnection conn = new SQLiteConnection();
public MainWindow()
{
InitializeComponent();
//連線SQLite資料庫檔案
SQLiteConnectionStringBuilder connstr = new SQLiteConnectionStringBuilder();
connstr.DataSource = datasource;
conn.ConnectionString = connstr.ToString();
conn.Open();
//這裡列出表記錄
DataTable data = ExecuteDataTable("SELECT * FROM employee",null);
foreach (DataRow dr in data.Rows)
{
StringBuilder sb = new StringBuilder();
sb.Append("ID=").Append(dr[0]);
sb.Append(",Name=").Append(dr[1]);
sb.Append(",Age=").Append(dr[2]);
Debug.WriteLine(sb.ToString());
}
}
private void button1_Click(object sender, RoutedEventArgs e)
{
//這裡演示如何插入一條新的記錄,如果要插入多條記錄需要使用“事務”機制來提高效率
//你可以呼叫ExecuteNonQuery函式來簡化下面的程式碼
using (SQLiteCommand cmd = (SQLiteCommand)conn.CreateCommand())
{
cmd.CommandText ="INSERT INTO employee(EMPLOYEE_NAME,EMPLOYEE_AGE)" +
" VALUES (@NAME, @AGE)";
cmd.Parameters.AddWithValue("@NAME", "InsertedName");
cmd.Parameters.AddWithValue("@AGE", 99);
cmd.ExecuteNonQuery();
}
}
private void button2_Click(object sender, RoutedEventArgs e)
{
//這裡演示如何刪除一條記錄
SQLiteParameter param = new SQLiteParameter("@ID", 1);
ExecuteNonQuery("DELETE FROM EMPLOYEE WHERE [email protected]",
new SQLiteParameter[]{param});
}
private void button3_Click(object sender, RoutedEventArgs e)
{
//這裡演示如何修改一條記錄,注意這裡沒有用字串替換功能
String sql = "UPDATE EMPLOYEE SET EMPLOYEE_AGE=22 where EMPLOYEE_ID=2";
ExecuteNonQuery(sql,null);
}
int ExecuteNonQuery(string sql, SQLiteParameter[] parameters)
{
int affectedRows = 0;
DbTransaction transaction = conn.BeginTransaction();
SQLiteCommand command = new SQLiteCommand(conn);
command.CommandText = sql;
if (parameters != null)
{
command.Parameters.AddRange(parameters);
}
affectedRows = command.ExecuteNonQuery();
transaction.Commit();
return affectedRows;
}
DataTable ExecuteDataTable(string sql, SQLiteParameter[] parameters)
{
DataTable data = new DataTable();
SQLiteCommand command = new SQLiteCommand(sql, conn);
if (parameters != null)
{
command.Parameters.AddRange(parameters);
}
SQLiteDataAdapter adapter = new SQLiteDataAdapter(command);
adapter.Fill(data);
return data;
}
}
}
在Silverlight工程中的引用
(待寫)
參考資料
[1]SQLite資料庫檔案管理工具
http://sqliteadmin.orbmu2k.de/
[2] System.Data.SQLite用於提供SQLite資料庫檔案訪問的第三方工具
http://sqlite.phxsoftware.com/
[3]《SQLite大量插入的效率問題》
[4]SQLite官網下載地址
相關推薦
C#對SQLite的常用操作
Author: Kagula Date: 2013-2-18 環境 [1]Visual Studio 2010 Ultimate with SP1 正文 準備工作 從參考資料中下載SQLiteAdministrator工具,新建SQLite資料庫檔案“employee
C#利用Dapper實現對SQLite的操作
前言 近幾天藉助C#對SQLite的學習,算是對資料庫剛入門吧,三天前寫了一篇C#利用System.Data.SQLite實現對SQLite的操作,其中方法是基於System.Data.SQLite.dll的程式包,後來在youtube和infoworld上看到利用Dapper程式包對資
C#利用System.Data.SQLite實現對SQLite的操作
SQLite介紹 SQLite是一個類似於Access的單機版資料庫管理系統,它將所有資料庫的定義(包括定義、表、索引和資料本身)都儲存在一個單一的檔案中。並且,SQLite是一個用C實現的類庫,它在記憶體消耗、檔案體積、簡單性方面都有不錯的表現,如果資料在10W條以下,查詢速度也是相當
C++list的常用操作
cat 創建 改變 end 插入 clu 末尾 ssi 頭文件 一、List定義: List是stl實現的雙向鏈表,與向量(vectors)相比, 它允許快速的插入和刪除,但是隨機訪問卻比較慢。使用時需要添加頭文件 #include <list> 二、L
c++對檔案進行操作之建立特定的檔案結構
首先,介紹如何知道一個檔案是否存在。 //該函式可以判斷某個檔案或者資料夾相應的模式是否成立,如果成立則返回0,否則返回-1 #include<io.h> int _access(const char *path,int mode); mode可以取值為0(該檔案是否存在)、
c++對檔案進行操作之遍歷雙層檔案結構
/*本程式碼實現遍歷雙層次層次的目錄結構*/ #include<stdio.h> #include<iostream> #include<io.h> #include<cstring> using namespace std; const ch
C#對XML完整操作
C#對XML完整操作 http://zhidao.baidu.com/question/74181361.html <?xml version="1.0"?> <birthday> <NO1> <type>型別<
Object 對象常用操作方法
opened const () open prot dog lap info code Object 構造方法 一、asign vs 擴展運算符 ... 1.共同點:都是淺拷貝 2.開發推薦 擴展運算符... let obj={ name: ‘Tom‘, ag
C# 列舉 Enum 常用操作
1.定義 public enum Musics{ 音樂1 = 1, 音樂2 = 2, 音樂3 = 3, 音樂4 = 4, 音樂5, 音樂6, 音樂7, 音樂8=10
C#對 SQL 資料庫操作總結
C#對 SQL 資料庫操作總結 &nbs
C#對資料庫的操作(查詢,刪除,更新)
查詢: static IQueryable<Outlet> Query(string Region, string DC, string CustomerCode, string KA, string OutletCode, string NestleOutletCode
c#對資料庫的操作程式碼(MySql.Data.dll包)
using System; using MySQLDriverCS; using System.Data; using MySql.Data.MySqlClient; namespace 實驗室資訊管理 { class DBHelper {
c# 對資料庫的操作
【學習點點滴滴】自己也才學習c# 所以寫的都是寫簡單的。 就是為了記錄學習的點點滴滴; 所以寫得比較簡。 string id=textbox.text.tostring(); sqlconnection cnn = new sqlconne
Json——js和C#對Json的操作
JSON(JavaScript Object Notation) 是一種輕量級的資料交換格式,採用完全獨立於語言的文字格式。博主記得幾年前在華為外包專案中有一個和Android應用互動的需求,Android呼叫C#的Webservice的介面,就是通過Json這種格式來傳遞資料的。就是因為這種完全獨立於
C#與Sqlite資料庫操作例項
這是一個有關分頁的例項,僅供參考(程式碼來自網路) using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Dr
C#對 SQL 資料庫操作彙總(轉載自xiaoxiyou)
目錄 要對資料庫進行增刪查改操作,先要連線資料庫,然後通過 command 類中相應方法或 Dataset 資料集中相應方法來 完成對資料庫的有關操作 一、建立資料庫連線(SqlConnection 類) 步驟: 1
運用c# 對Word進行操作總結(一)建立Word文件
在醫療管理系統中為儲存患者的體檢和治療記錄,方便以後的醫生或其他人檢視。當把資料儲存到資料庫中,需要新建很多的欄位,而且操作很繁瑣,於是想到網頁的資訊建立到一個word文字中,在顯示的時,可以線上開啟word,也可以把word轉換成html標籤顯示。 這樣使用
lua對sqlite資料庫操作封裝
DB = {} db_e = require "luasql.sqlite3" function open_db( ... ) -- body env = assert(db_e.
SQLite Helper類,基於.net c#的SQLite資料庫操作類
SQLite這個精巧的小資料庫,無需安裝軟體,只需要一個System.Data.SQLite.DLL檔案即可操作SQLite資料庫。但是據說功能卻非常強大。 簡介: SQLite是一個開源資料庫,現在已變得越來越流行,它的體積很小,被廣泛應用於各種不同型別的應用中。SQLi
C#對XML文件的各種操作方法
C# XML文件的各種操作方法 內容來自越康體育分享。 XML:Extensible Markup Language(可擴展標記語言)的縮寫,是用來定義其它語言的一種元語言,其前身是SGML(Standard Generalized Markup Language,標準通用標