关于.Net中使用SQLite数据库的方法

摘要:
)(为了与其他软件保持一致,建议安装.Net 4.5版本!)默认安装路径:C:\ProgramFilesSystem.Data.SQLite.Net Reference:只需在安装bin目录下引用名为System.Data.SQL ite.dll的文件!)3..Net使用SQLite,只需要引用System.Data.SQLite.dll,而不是sqlite3.dll。SQLite:SQLite是用于本地数据存储的轻量级数据库。)4.支持数据库大小高达2TB。

参考:

SQLite之C#连接SQLite
https://www.cnblogs.com/icebutterfly/p/7850689.html

关于SQLite的库安装比较特殊:

下载地址:http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki --ok!
https://www.sqlite.org/download.html。---用于安卓、Mac、Linux等平台的下载。

下载安装包:
sqlite-netFx20-setup-x64-2005-1.0.108.0.exe ---测试ok!
或者 sqlite-netFx45-setup-x64-2012-1.0.108.0.exe 需要先卸载2.0版,再安装。---测试ok!
再下载 sqlite-netFx45-binary-x64-2012-1.0.108.0.zip(内含xml函数注释!)
(为了与其它软件保持一致,建议安装.Net 4.5版本的!)

默认安装路径:C:Program FilesSystem.Data.SQLite

.Net引用:只需引用安装bin目录下的,System.Data.SQLite.dll一个文件即可!

注意:

1、带bundle的表示动态库是按混合模式编译的,还有纯x86和纯x64模式的库,共3种,按实际需要选择。(与项目的生成--目标平台一致才行!建议下x64版本的!!)

2、下载的库,一定要安装,才行!!(只引用,未安装,运行会报错!!)

3、.Net使用SQLite,只需要引用System.Data.SQLite.dll,根本用不着 sqlite3.dll。没想到吧!

…………………………
SQLite 介绍:

SQLite,是一款轻型的数据库,用于本地的数据储存。开源数据库。

优点,它占用资源非常的低,在嵌入式设备中需要几百K的内存就够了;作为轻量级数据库,他的处理速度也足够快;支持的的容量级别为T级;独立: 没有额外依赖;开源;支持多种语言。

详细优点:

1、它的设计目标是嵌入式的,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。

2、跨平台和多语言支持:它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,
比如C, C++, PHP, Perl, Java, C#,Python, Ruby等。

3、速度快:比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。
(比一些流行的数据库在大部分普通数据库操作要快。)

4、支持数据库大小至2TB。

5、足够小, 大致13万行C代码, 4.43M

6、简单, 轻松的API

7、源码完全的开源, 你可以用于任何用途, 包括出售它。

8、它还支持事务处理功能等等。


使用.NET操作SQLLITE:

示例代码1:

public string Query()
{
string datasource = "e:/tmp/test.db";
System.Data.SQLite.SQLiteConnection.CreateFile(datasource);
//连接数据库
System.Data.SQLite.SQLiteConnection conn = new System.Data.SQLite.SQLiteConnection();
System.Data.SQLite.SQLiteConnectionStringBuilder connstr = new System.Data.SQLite.SQLiteConnectionStringBuilder();
connstr.DataSource = datasource;
connstr.Password = "admin";//设置密码,SQLite ADO.NET实现了数据库密码保护
conn.ConnectionString = connstr.ToString();
conn.Open();
//创建表
System.Data.SQLite.SQLiteCommand cmd = new System.Data.SQLite.SQLiteCommand();
string sql = "CREATE TABLE test(username varchar(20),password varchar(20))";
cmd.CommandText = sql;
cmd.Connection = conn;
cmd.ExecuteNonQuery();
//插入数据
sql = "INSERT INTO test VALUES('a','b')";
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
//取出数据
sql = "SELECT * FROM test";
cmd.CommandText = sql;
System.Data.SQLite.SQLiteDataReader reader = cmd.ExecuteReader();
StringBuilder sb = new StringBuilder();
while (reader.Read())
{
sb.Append("username:").Append(reader.GetString(0)).Append(" ")
.Append("password:").Append(reader.GetString(1));
}
//MessageBox.Show(sb.ToString());

return sb.ToString();

}

示例代码2:事务操作:

using (SQLiteConnection conn = new SQLiteConnection(connectionString))
{
conn.Open();
SQLiteCommand cmd = new SQLiteCommand();
cmd.Connection = conn;
SQLiteTransaction tx = conn.BeginTransaction();
cmd.Transaction = tx;
try
{
for (int n = 0; n < SQLStringList.Count; n++)
{
string strsql = SQLStringList[n].ToString();
if (strsql.Trim().Length > 1)
{
cmd.CommandText = strsql;
cmd.ExecuteNonQuery();
}
}
tx.Commit();
}
catch (System.Data.SQLite.SQLiteException E)
{
tx.Rollback();
throw new Exception(E.Message);
}

免责声明:文章转载自《关于.Net中使用SQLite数据库的方法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇onTouch与onClick事件的关系linux系统数据落盘之细节下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Java大文件分片上传/多线程上传组件

javaweb上传文件 上传文件的jsp中的部分 上传文件同样可以使用form表单向后端发请求,也可以使用 ajax向后端发请求     1. 通过form表单向后端发送请求          <form id="postForm" action="${pageContext.request.contextPath}/UploadServlet" m...

C#学习笔记(22)——C#创建文本文件txt并追加写入数据

ref: https://www.cnblogs.com/Jacklovely/p/7263844.html 说明(2017-7-31 16:25:06): 1. 有两种办法,第一种是用FileStream创建txt,用StreamWriter写入数据,期间还要加上判断,是否存在这个txt文件,如果不存在就创建,存在就追加写入。太麻烦了! 2. 第二种是直...

C#锐利体验(转)

南京邮电学院 李建忠(cornyfield@263.net) 索引 C#锐利体验 "Hello,World!"程序 C#语言基础介绍 Microsoft.NET平台基础构造 类与对象 构造器与析构器 方法 域与属性 索引器与操...

微信公众平台开发尝试

最近看了一篇博文是说微信公众平台搭建,于是心血来潮自己也尝试了一下。 1.不用多讲了,申请微信公众号,对于个人来说,只能申请订阅号。 可以看这个链接的文章,http://jingyan.baidu.com/article/414eccf6011ff06b431f0aec.html 2.采用的是Sina App Engine来脱管服务,就要申请sae开发者权...

vue中的watch监听数据变化以及watch中各属性详解

1、watch使用的几种方法(1)通过watch监听data数据的变化,数据发生变化时,就会打印当前的值 watch: { data(val, newval) { console.log(val) console.log(newval) } } (2)通过watch监听docData数据的变化...

C#实现局部峰值查找,功能对应Matlab中的findpeaks.m

相关算法的原理参考Ronny,地址:图像分析:投影曲线的波峰查找,这里感谢下原作者。 参照C++的代码实现,我用C#翻译了下,其实原理也很简单的,下面放相关实现代码: private double[] oneDiff(double[] data) { double[] result = new...