当前位置:数据库 > SQLite >>

SQLite数据库之第一次亲密接触

 
SQLite是一个比较火的免费的轻量级嵌入式数据库,比较适合桌面程序和小型应用,最新版本可以去官网下载:
http://www.sqlite.org/, 它只包含一个名叫SQLite3.exe的程序,下载完之后可以将其拷入系统盘Windows目录下,以方便命令行执行命。  www.zzzyk.com  
打开cmd命令行,键入 sqlite3 D:\Projects\SQLite\chytest.db即可创建新的或连接已有的DB,这时候DB已经挂到了SQLite3,可以执行增删查找操作了,比如:
 
CREATE TABLE [Animals] (
  [AnimalId] INTEGER PRIMARY KEY AUTOINCREMENT, 
  [AnimalName] NVARCHAR(100) NOT NULL ON CONFLICT ROLLBACK, 
  [Color] VARCHAR(50) NOT NULL ON CONFLICT ROLLBACK DEFAULT Red, 
  [Gender] CHAR(1) NOT NULL ON CONFLICT ROLLBACK DEFAULT M);
insert into Animals (AnimalName, Color, Gender) values ('Cat', 'Black', 'F') ;
select * from Animals;
 
必须注意每一个命令都需要以分号结束,否则SQLite会认为命令输入未结束,继续等待输入而不执行。 
Sqlite也有很多可视化的管理工具, 比如 SQLite Expert, 可以去官网下载,有免费版本可用:
http://sqliteexpert.com/
安装完之后可以看看它自带的Demo DB,里面有很多表,可以大致学习一下基本结构和语法。
 
如何在Asp.net中使用SQLite
首先需要下载针对SQLite的驱动,所谓驱动也就是一个程序集System.Data.SQLite.dll罢了,可以去这里下载适合自己的驱动:  www.zzzyk.com  
http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki
 
驱动装完之后, 可以把里面的 System.Data.SQLite.dll文件拷到你的程序目录,我们需要的只有它。 用起来就很简单了,直接在project里添加引用,然后跟使用Sql Server一样就可以了,参考以下代码:
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SQLite;
using System.Data;
 
namespace SQLiteConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            SQLiteConnection conn = new SQLiteConnection("Data Source=chytest.db");
            SQLiteCommand cmd = new SQLiteCommand("select * from tbl1", conn);
            SQLiteCommand cmd2 = new SQLiteCommand("insert into tbl1 (one, two) values ('code insert', 51)", conn);
            
            conn.Open();
 
            // insert new data
            //cmd2.ExecuteNonQuery();
 
            // use reader to read the data
            var reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                if (reader.HasRows)
                {
                    Console.WriteLine(reader[0].ToString() + "~" + reader[1].ToString());
                }
            }
            reader.Close();
 
            // use adapter to read data into datatable
            SQLiteDataAdapter adapter = new SQLiteDataAdapter(cmd);
            DataTable dt = new DataTable("tbl1");
            adapter.Fill(dt);
 
            if (dt.Rows.Count > 0)
            {
                foreach (DataRow row in dt.Rows)
                {
                    Console.WriteLine(row[0].ToString() + "^" + row[1].ToString());
                }  www.zzzyk.com  
            }
 
            conn.Close();
 
            Console.ReadLine();
 
        }
    }
}
 
目前SQLite并不支持存储过程,并且因为是读写单锁机制,不适合高并发的应用。 
 
 
 
作者 破碎了无痕
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,