SQLite學習1_Windows下安裝配置SQLite和使用的教程(1)

安裝使用SQLite

sqlite的官方下載地址爲http://www.sqlite.org/download.html,上面提供了多種版本的sqlite,我選擇下載名稱爲sqlite-shell-win32-x86-3080500.zip 的版本。下載後就直接解壓到磁盤上,可以看到解壓後只有sqlite3.exe這個文件。

接下來需要將sqlite加入到path環境變量中(加入環境變量是爲了更加方便地使用sqlite),右鍵我的電腦-屬性-高級系統設置-環境變量,在系統變量中找到Path,將解壓的文件夾目錄加入到後面(注意是文件夾目錄,例如我本機的目錄 E:Toolssqlite)。打開cmd,輸入sqlite3,如果彈出以下消息,就表示成功了。

\

sqlite常用操作

1. 新建一個數據庫文件

>命令行進入到要創建db文件的文件夾位置

>使用命令創建數據庫文件: sqlite3 所要創建的db文件名稱

>使用命令查看已附加的數據庫文件: .databases

\

2. 打開已建立的數據庫文件

>命令行進入到要打開的db文件的文件夾位置

>使用命令行打開已建立的db文件: sqlite3 文件名稱(注意:假如文件名稱不存在,則會新建一個新的db文件)

3. 查看幫助命令

>命令行直接輸入sqlite3,進去到sqlite3命令行界面

>輸入.help 查看常用命令

\

使用sqlite管理工具

shell腳本雖然提供了很強大的功能,但是使用起來還是不夠方便,幸運的是,sqlite有很多開源而且優秀的DBMS!

這裏我將使用一款叫做SQLiteSPY的軟件,官網地址爲http://www.yunqa.de/delphi/doku.php/products/sqlitespy/index,這個軟件是綠色免安裝版,解壓直接運行就可以了。

\

可以看到,SQLiteSpy的界面佈局和SQLServer很相近,操作起來很方便,這裏就不在繼續詳細介紹了。(要知道的一點就是單純使用這個軟件也可以創建和使用sqlite數據庫,不需要與上面提到的shell工具關聯)

C#使用System.Data.SQLite.dll訪問數據庫

SQLite提供了用於C#調用的dll,下載地址爲http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki,注意根據.NET FRAMEWORK版本下載對應的組件。在項目中只要引入System.Data.SQLite.dll這個組件,就可以實現數據庫操作了。由於SQLite.dll實現了ADO.NET的接口,所以熟悉ADO.NET的人上手SQLite.dll也是非常快的。DEMO數據庫表的結構爲:

CREATE TABLE hero
(
    hero_id   INT          NOT NULL PRIMARY KEY,
    hero_name NVARCHAR(10) NOT NULL
);

比較需要注意到一點是數據庫連接字符串,SQLite使用的連接字符串比較簡單,只要寫上數據庫文件的引用路徑就可以了。DEMO是一個控制檯應用程序,增刪查改的實例代碼如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.Common;
using System.Data.SQLite;

namespace ConsoleApp
{
    class Program
    {
        static readonly string DB_PATH = "Data Source=E:/database/sqlite/arena.db";

        static void Select()
        {
            using (SQLiteConnection con = new SQLiteConnection(DB_PATH))
            {
                con.Open();
                string sqlStr = @"SELECT *
                                    FROM hero";
                using(SQLiteCommand cmd = new SQLiteCommand(sqlStr,con))
                {
                    using (SQLiteDataReader dr = cmd.ExecuteReader())
                    {
                        while (dr.Read())
                        {
                            Console.WriteLine(dr["hero_id"].ToString() + dr["hero_name"]);
                        }
                    }
                }
            }
        }

        static void Insert()
        {
            using (SQLiteConnection con = new SQLiteConnection(DB_PATH))
            {
                con.Open();
                string sqlStr = @"INSERT INTO hero
                                  VALUES
                                  (
                                      1,
                                      '薩滿'
                                  )";
                using(SQLiteCommand cmd = new SQLiteCommand(sqlStr,con))
                {
                    cmd.ExecuteNonQuery();
                }           
            }
        }

        static void Update()
        {
            using (SQLiteConnection con = new SQLiteConnection(DB_PATH))
            {
                con.Open();
                string sqlStr = @"UPDATE hero
                                     SET hero_name = '盜賊'
                                   WHERE hero_id = 1";
                using (SQLiteCommand cmd = new SQLiteCommand(sqlStr, con))
                {
                    cmd.ExecuteNonQuery();
                }      
            }
        }

        static void Delete()
        {
            using (SQLiteConnection con = new SQLiteConnection(DB_PATH))
            {
                con.Open();
                string sqlStr = @"DELETE FROM hero";
                using (SQLiteCommand cmd = new SQLiteCommand(sqlStr, con))
                {
                    cmd.ExecuteNonQuery();
                }
            }
        }

        static void Main(string[] args)
        {
            Insert();
            Select();
            Update();
            Select();
            Delete();
        }
    }
}
 
 
原文來自:http://blog.csdn.net/catemo/article/details/53387144