C#访问SQLite数据库实例

   SQLite是一款非常轻量级的关系数据库系统,支持多数SQL92标准。SQLite在使用前不需要安装设置,不需要进程来启动、停止或配置,而其他大多数SQL数据库引擎是作为一个单独的服务器进程,被程序使用某种内部进程通信(典型的是TCP/IP),完成发送请求到服务器和接收查询结果的工作,SQLite不采用这种工作方式。使用SQLite时,访问数据库的程序直接从磁盘上的数据库文件读写,没有中间的服务器进程。使用SQLite一般只需要带上一个dll,就可以使用它的全部功能。

  SQLite的主要应用场景有作为手机应用的数据库以及小型桌面软件的数据库。

  一些有用的 SQLite 命令

  显示表结构:

  sqlite> .schema [table]

  获取所有表和视图:

  sqlite > .tables

  获取指定表的索引列表:

  sqlite > .indices [table ]

  导出数据库到 SQL 文件:

  sqlite > .output [filename ]

  sqlite > .dump

  sqlite > .output stdout

  从 SQL 文件导入数据库:

  sqlite > .read [filename ]

  格式化输出数据到 CSV 格式:

  sqlite >.output [filename.csv ]

  sqlite >.separator ,

  sqlite > select * from test;

  sqlite >.output stdout

  从 CSV 文件导入数据到表中:

  sqlite >create table newtable ( id integer primary key, value text );

  sqlite >.import [filename.csv ] newtable

  备份数据库:

  /* usage: sqlite3 [database] .dump > [filename] */

  sqlite3 mytable.db .dump > backup.sql

  恢复数据库:

  /* usage: sqlite3 [database ] < [filename ] */

  sqlite3 mytable.db < backup.sql

  安装使用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();

  }

  }

  }

时间: 2024-09-15 05:12:36

C#访问SQLite数据库实例的相关文章

Android编程操作嵌入式关系型SQLite数据库实例详解_Android

本文实例分析了Android编程操作嵌入式关系型SQLite数据库的方法.分享给大家供大家参考,具体如下: SQLite特点 1.Android平台中嵌入了一个关系型数据库SQLite,和其他数据库不同的是SQLite存储数据时不区分类型 例如一个字段声明为Integer类型,我们也可以将一个字符串存入,一个字段声明为布尔型,我们也可以存入浮点数. 除非是主键被定义为Integer,这时只能存储64位整数 2.创建数据库的表时可以不指定数据类型,例如: 复制代码 代码如下: CREATE TAB

C#简单访问SQLite数据库的方法(安装,连接,查询等)_C#教程

本文实例讲述了C#简单访问SQLite数据库的方法.分享给大家供大家参考,具体如下: 下载最新版SQLite(http://www.sqlite.org/download.html),其他版本也可以,这里使用的版本是sqlite-3_6_6_1 a.解压后copy c:\sqlite-3_6_6_1 b.进入cmd模式,进入sqlite-3_6_6_1目录,执行sqlite3 mytest.db c. create table test (seq int,desc varchar(8)); in

如何用Perl访问SQLite数据库

SQLite是一个零配置.无服务端.基于文件的事务型数据库系统.由于它的轻量级,自包含和紧凑的设计,所以当你想要集成数据库到你的程序中时,SQLite是一个非常不错的选择.在这篇文章中,我会展示如何用Perl脚本来创建和访问SQLite数据库.我演示的Perl代码片段是完整的,所以你可以很简单地修改并集成到你的项目中. 访问SQLite的准备 我会使用SQLite DBI Perl驱动来连接到SQLite3.因此你需要在Linux中安装它(和SQLite3一起). Debian. Ubuntu

使用微软企业库EnterpriseLibary访问SQLite数据库

SQLite是一个小型的C程序库,实现了独立的,可嵌入的,零配置的SQL数据库引擎,SQLite用的非常广泛,支持通用的SQL92标准,支持事务操作, 支持最大可达2T的数据库,在小型数据库使用性能上由于微软的Access数据库等等特点. 由于默认的微软企业库EnterpriseLibary不支持 SQLite的数据库访问,因此需要在 企业库EnterpriseLibary中访问这种数据库的话,需要使用一个企业库的扩展类库,该类库可以http://entlibcontrib.codeplex.c

Android编程操作嵌入式关系型SQLite数据库实例详解

本文实例分析了Android编程操作嵌入式关系型SQLite数据库的方法.分享给大家供大家参考,具体如下: SQLite特点 1.Android平台中嵌入了一个关系型数据库SQLite,和其他数据库不同的是SQLite存储数据时不区分类型 例如一个字段声明为Integer类型,我们也可以将一个字符串存入,一个字段声明为布尔型,我们也可以存入浮点数. 除非是主键被定义为Integer,这时只能存储64位整数 2.创建数据库的表时可以不指定数据类型,例如: 复制代码 代码如下:CREATE TABL

ASP.NET(C#)中操作SQLite数据库实例_实用技巧

要想在ASP.NET项目中使用SQLite数据库,先需下载一个ADO.NET 2.0 SQLite Data Provider,下载地址为:http://sourceforge.net/project/showfiles.php?group_id=132486&package_id=145568,下载后安装完毕后,该安装程序自动在在系统注册(即可在"添加引用"中看到所安装的Provider).               然后,在项目中添加上图所选项即可.      aspx页

Mac OS X中pypyodbc访问mdb数据库实例教程

首先使用brew安装unixodbc和mdbtools,unixodbc是odbc驱动管理器,mdbtools提供了一组mdb操作工具,更重要的是mdbtools提供了mdb驱动程序. $ brew install unixodbc $ brew install mdbtools 但是安装完成后发现/usr/local/lib目录中没有mdbtools驱动动态链接库libmdbodbc.dylib 查看mdbtools选项可以发现: $ brew options mdbtools --with-

php配置sqlite数据库开发实例

百度搜索下载SqLiteManager工具 PHP5已经绑定sqlite 1.手动添加的php的pdo的驱动扩展支持 ,在PHP.ini添加 extension=php_pdo.dll extension=php_pdo_sqlite.dll extension=php_sqlite.dll extension_dir = "C:\Program Files\Apache Group\php5\ext" 2.在C:\Program Files\Apache Group\php5\ext

php读取sqlite数据库入门实例代码_javascript技巧

SQLite简介 SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入  式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了. 它能够支持 Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl.PHP.Java.C++..Net等,还有ODBC接口,同样比起 Mysql.PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快. 单