SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月。 至今已经有13个年头,SQLite也迎来了一个版本 SQLite 3已经发布。

  既然嵌入型的数据库SQLite这么小巧,那么我们.NET开发人员怎么把优美的C#语言和SQLite数据库结合起来进行开发呢,下面开始揭秘第一步:

  1:从http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki获得一个SQLite数据库的安装版本,建议选择Setups for 32-bit Windows (.NET Framework 4.0)下面的sqlite-netFx40-setup-bundle-x86-2010-1.0.89.0.exe安装文件,exe安装文件大小为10.73M,截图如下:

  

这个版本的SQLite适用于Visual Studio 2010的开发环境,如过你的VS开发环境不同,请下载与之相符的SQLite版本。

2:下载完成SQLite的安装文件之后,双击进行安装:

建议安装目录选择默认的C:\Program Files (x86)\System.Data.SQLite\2010  截图如下:

点击Next,安装方式选择完全安装:

点击Next,选择开始菜单文件夹这一步同样保持默认安装选项就OK了:

点击Next,进入“选择附加任务”选择界面,全打上勾:

点击Next之后,单击Install进行安装。

安装完成之后,打开你的C:\Program Files\System.Data.SQLite\2010\bin目录,你会看到SQLite.Designer.dll、System.Data.SQLite.dll、System.Data.SQLite.Linq.dll这三个dll,在项目中引用后两个Dll文件就可以进行ado.net数据库访问了。

既然SQLite已经安装完成,那么有没有像Sqlserver Management Studio这样的可视化数据库管理软件呢?答案是肯定的,请读者自行百度,这里推荐一个FireFox浏览器的可视化插件,叫做SQLite Manager,下面介绍一下安装过程:

安装一个FireFox的较新版本后打开浏览器,点击工具栏上的“工具”→附加组件,在右上角的位置有个“搜索附加组件”的文本框,键入“SQLite Manager”

进行搜索,找到之后安装重启浏览器,再次点击工具栏上的“工具”,就会看到这个插件了:

到这里,SQLite数据库与可视化管理组件就安装完成了,下面开始揭秘的第二步,创建一个简单的数据库文件:

  打开SQLite Manager插件,界面如下所示:

点击菜单栏中的Database,选择New Database,在弹出的对话框中填入数据库名称“test1”后点击确定,选择一个数据库文件存放的目录位置,单击选择文件夹,数据库创建成功,截图如下:

接下来,右击Tables,选择弹出菜单中的“Create Table”,会弹出一个表结构设计窗口,我们创建一个简单的Users表,截图如下,其中Id为自动增长的int主键:

  创建完成Users表后,左侧Tables下会显示出当前数据库中的所有表,下面让我们快速为这张表添加几条数据,怎么做呢?那就是点击界面右侧的“Browse&Search”选项卡,通过Add按钮向Users表中添加几条测试数据,截图如下:

至此,关于SQLite数据库方面的操作就告一段落了,下面开始揭秘的第三步,建立一个VS2010 WinForm解决方案,通过ADO.NET操作数据库:

  首先,为建好的项目添加对System.Data.SQLite Core、System.Data.SQLite forLINQ和System.Configuration的引用,截图如下:

接下来,在项目中添加4个文件夹,分别为Model,DAL,BAL,SQLiteDB,把我们刚才建好的test.sqlite数据库文件添加到SQLiteDB文件夹下,同时修改test.sqlite的属性“复制到输出目录”为“始终复制”,截图如下:

为项目中添加应用程序配置文件App.config,截图如下:

打开App.config配置文件,向configuration节点下添加连接字符串的配置信息:

  1. <connectionStrings>
  2. <add name="connStr" connectionString="Data Source=SQLiteDB/test.sqlite;" />
  3. </connectionStrings>

连接字符串的配置信息

在Model文件夹下面创建一个Users.cs类,代码如下:

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace SQLiteBlog.Model
  7. {
  8. public class Users
  9. {
  10. private int id;
  11. private string userName;
  12. private string password;
  13. private int age;
  14. private string email;
  15.  
  16. public int Id
  17. {
  18. get { return id; }
  19. set { id = value; }
  20. }
  21. public string UserName
  22. {
  23. get { return userName; }
  24. set { userName = value; }
  25. }
  26. public string Password
  27. {
  28. get { return password; }
  29. set { password = value; }
  30. }
  31. public int Age
  32. {
  33. get { return age; }
  34. set { age = value; }
  35. }
  36. public string Email
  37. {
  38. get { return email; }
  39. set { email = value; }
  40. }
  41. }
  42. }

Model文件夹下的Users.cs类

在DAL文件夹下创建一个DalUsers.cs类,代码如下:

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Configuration;
  6. using System.Data.SQLite;
  7. using System.Data;
  8.  
  9. namespace SQLiteBlog.DAL
  10. {
  11. public class DalUsers
  12. {
  13. private static readonly string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
  14.  
  15. /// <summary>
  16. /// 获取所有的用户信息
  17. /// </summary>
  18. public DataTable GetAllUsers()
  19. {
  20. DataTable dt = new DataTable();
  21. using (SQLiteConnection conn = new SQLiteConnection(connStr))
  22. {
  23. conn.Open();
  24. using (SQLiteCommand cmd = conn.CreateCommand())
  25. {
  26. cmd.CommandText = "select * from users";
  27. SQLiteDataReader reader = cmd.ExecuteReader();
  28. dt.Load(reader);
  29. reader.Close();
  30. return dt;
  31. }
  32. }
  33. }
  34. }
  35. }

DAL文件夹下的DalUsers.cs类

在BAL文件夹下创建BalUsers.cs类,代码如下:

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using SQLiteBlog.DAL;
  6. using SQLiteBlog.Model;
  7. using System.Data;
  8.  
  9. namespace SQLiteBlog.BAL
  10. {
  11. public class BalUsers
  12. {
  13. DalUsers dalUsers = new DalUsers();
  14.  
  15. public List<Users> GetAllUsers()
  16. {
  17. List<Users> users = new List<Users>();
  18. DataTable dt = dalUsers.GetAllUsers();
  19. if (dt.Rows.Count > )
  20. {
  21. foreach (DataRow row in dt.Rows)
  22. {
  23. Users user = new Users
  24. {
  25. Id = Convert.ToInt32(row["Id"]),
  26. UserName = row["UserName"].ToString(),
  27. Password = row["Password"].ToString(),
  28. Age = Convert.ToInt32(row["Age"]),
  29. Email = row["Email"].ToString()
  30. };
  31. users.Add(user);
  32. }
  33. }
  34. return users;
  35. }
  36. }
  37. }

BAL文件夹下的BalUsers.cs类

最后,在Form1窗体的Load事件中添加如下代码:

  1. BalUsers balUsers = new BalUsers();
  2. List<Users> users = balUsers.GetAllUsers();
  3. MessageBox.Show(users.Count.ToString());

Form1窗体Load事件中的代码

OK,调试运行,在窗体加载事件触发的时候,会Show出一个对话框,

赤裸裸的证明我们的代码运行成功了,Cheers!

揭秘C# SQLite的从安装到使用的更多相关文章

  1. windows phone 8.1开发SQlite数据库引用安装

    原文出自:http://www.bcmeng.com/windows-phone-sqlite/ windows phone 8.1开发SQlite数据库引用安装 第一步: 安装SQlite forw ...

  2. SQLite Manager插件安装与使用(firefox)

    下载与安装: FireFox 插件:SQLite Manager可以管理你电脑上的任何 SQLite数据库.一个直观的目录树状来展示数据库的对象.通过提示对话来管理表.索引.视图和触发器.你能浏览和搜 ...

  3. sqlite数据库下载安装和初步操作和所遇到的问题near &quot;sqlite3&quot;:syntax error

    1.下载sqlite数据库:http://www.sqlite.org/download.html 假设是在window上安装须要在 Windows 区下载预编译的二进制文件.如图下载下载 sqlit ...

  4. net 4.0+EF6+Sqlite 使用,安装,打包

    开发 1.因为EF不支持Codefirst,开始可以使用SQL来进行开发. 部署安装 2.然后可以找到SQL转Sqlite工具(http://www.cnblogs.com/walkingp/arch ...

  5. sqlite配置下载安装教程

    安装教程 第一步: 首先去官网下载:https://www.sqlite.org/download.html 或直接下载:https://github.com/weibanggang/sqlite 下 ...

  6. 如何在 Ubuntu 15.04 上安装带 JSON 支持的 SQLite 3.9

    欢迎阅读我们关于SQLite 的文章,SQLite 是当今世界上使用最广泛的 SQL 数据库引擎,它基本不需要配置,不需要设置或管理就可以运行.SQLite 是一个是公开领域(public-domai ...

  7. Sqlite 安装操作使用

    一.什么是 SQLite 数据库 SQLite 是嵌入式SQL数据库引擎.与大多数其他 SQL 数据库不同,SQLite 没有单独的服务器进程.SQLite 直接读取和写入普通磁盘文件.具有多个表,索 ...

  8. C# 与 SQLite的操作

    1.通过Add References引用SQLite ADO .NET安装目录的bin目录下的System.Data.SQLite.DLL. 2.创建数据库文件:因为始终是个0字节文件,应该利用IO也 ...

  9. HTML5本地数据库(SQLite)示例

    本文转载自http://blog.sina.com.cn/s/blog_641cf27f01016pm5.html 按照国内一HTML5先行者的例子仿写了一个用HTML5 API来操作本地SQLite ...

随机推荐

  1. Python编程习惯

  2. CF_EDU51 E. Vasya and Big Integers

    传送门:https://codeforces.com/contest/1051/problem/E 题意: 把一个数分成许多小段,每一段的值在L和R间.问有多少种分法. 思路 : 首先,需要快速处理出 ...

  3. cogs 2652. 秘术「天文密葬法」(0/1分数规划 长链剖分 二分答案 dp

    http://cogs.pro:8080/cogs/problem/problem.php?pid=vSXNiVegV 题意:给个树,第i个点有两个权值ai和bi,现在求一条长度为m的路径,使得Σai ...

  4. KDTree 板子

    从杨哥哪里偷的板子, 存一下. #include<bits/stdc++.h> using namespace std; #define Fopen freopen("_in.t ...

  5. 自动化专业如何转SLAM或机器学习岗?

    由于不方便放链接,更好的阅读体验请查看:自动化专业如何转SLAM或机器学习岗? 本文来自知乎上的同名问题,原文链接: https://www.zhihu.com/question/266685012/ ...

  6. Flink文章测试

    Flink文章测试 Flink文章测试 Flink文章测试 Flink文章测试 Flink文章测试 Flink文章测试 Flink文章测试 Flink文章测试 Flink文章测试 Flink文章测试 ...

  7. git拉取分支

    拉取仓库代码很简单,直接建立连接在pull下来就可以,如果想要拉取仓库中的某一个分支的话,则可能比较麻烦一点,下面简单介绍了一种拉取仓库分支的方法 1.先新建一个项目文件夹 2.git初始化git i ...

  8. 008 Python基本语法元素小结

    目录 一.概要 二.保留字 三.温度转换 一.概要 缩进.注释.命名.变量.保留字 数据类型.字符串. 整数.浮点数.列表 赋值语句.分支语句.函数 input().print().eval(). p ...

  9. jinfo Java配置信息工具

    jinfo(Configuration info for Java) jinfo的作用是实时地查看和调整虚拟机各项参数. jinfo 命令格式: jinfo [ option ] pid pid是虚拟 ...

  10. rpm简单使用

    rpm描述:利用源码包编译成rpm时,会去指定安装好这个包的位置本质:解压,然后拷贝到相关的目录,然后执行脚本 vstpd-3.0.2-9.el7.x86_64.rpm 包名 版本 release 架 ...