最近在研究sqlite的数据库,是因为项目需要存储大量数据,也需要查询,比起txt或者excel、xml等方式,综合还是想用数据库保存,但是公司项目没有实施工程师,使用sqlserver怕客户不会安装,所以希望可以安装项目软件的时候自动安装sql数据库,查了很久的资料,还没有很好的方式解决。偶然发现sqlite不需要安装,很方便能部署到打包文件里面,如果你和我有同样的问题,可以使用sqlite的数据库。
之后成功打包后会写一个笔记,记录下如何将数据库打包到安装包里,到时候再来更新~~
目录
1.下载sqlite
可在官方自主下载http://www.sqlite.org/download.html
或者点击此处(https://download.csdn.net/download/Yyuanyuxin/12326786)(例子实验于window下VS):
内容如下(包括所需的文件,小例子及sqlite协助使用类):
处理sqlite3.exe文件:
sqlite3.exe文件一般建议放在c盘下面,但是我更喜欢放在需要建立数据库的目录位置,方便操作。
2.创建数据库及表操作
创建数据库:
打开sqlite3.exe,使用. open test.db
可以进入同目录下的 test.db数据库,如果没有该数据库,会自动创建该数据库。
或者代码创建(要添加引用,之后会讲):
var fileName = AppDomain.CurrentDomain.BaseDirectory + "test.db"; ;
SQLiteConnection.CreateFile(fileName);
创建表:create table t1(id int ,name varchar(50))
其实建表的语句就是sql语句。
更方便的方式是SQLite数据库查看工具,图形化操作。个人喜欢用DB Browser for SQLite,下载地址:https://sqlitebrowser.org/dl/
或者https://download.csdn.net/download/Yyuanyuxin/12326735
3.在VS上使用sqlite
在自己的项目上添加引用:
找到下图目录下的dll文件,点击确定。
简单连接数据库:
this.dataGridView1.DataSource = Query("SELECT * FROM table1").Tables[0];
using System.Data.SQLite;
//查询数据库,返回表
public static DataSet Query(string SQLString)
{
string path = AppDomain.CurrentDomain.BaseDirectory + "test.db";
//数据库连接字符串
string connectionString = "Data Source=" + path;
using (SQLiteConnection connection = new SQLiteConnection(connectionString))
{
DataSet ds = new DataSet();
try
{
connection.Open();
SQLiteDataAdapter command = new SQLiteDataAdapter(SQLString, connection);
command.Fill(ds, "ds");
}
catch (System.Data.SQLite.SQLiteException ex)
{
throw new Exception(ex.Message);
}
return ds;
}
}
详细如何使用基本大家会使用帮助类,在小例子中有一个自己惯用的,网上也有很多,选择合适的即可:
关于SQLite中“其他信息: 未能加载文件或程序集“System.Data.SQLite, Version=1.0.81.0, Culture=neutral, PublicKeyToken=db“
这是System.Data.SQLite.dll版本不对的问题,到https://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki
下下载符合的dll即可。
我使用的是
下载的是这个压缩包:
打开压缩包,替换原有的dll即可(下载包:https://download.csdn.net/download/Yyuanyuxin/12327113)
要注意,放在初始化函数中,有可能造成编辑UI界面无法打开,可能是dll还是没有支持最新的,最好避免(例子中也是直接用的,是可以的,反而是在项目的过程中在自定义控件中使用,会导致主界面无法显示,暂时没有解决)。