为什么我需要SQLite
* 轻巧灵活,基于单个数据库文件,方便创建、移动,能方便的进行数据的分类存储(按业务、按功能、按日期、按客户等),非常适合与灵活的系统搭配使用。
* 部署容易,.NET环境只需一个dll文件(Access可能需要安装MDAC)。
* 开源。
SQLite开发环境与开发资料的准备
.Net SQLite数据库驱动:System.Data.SQLite.dll以及文档
SQLite GUI数据库工具:SQLite Expert PersonalEdition(个人版免费,够用了)
.Net SQLite数据库驱动源码:sqlite-netFx-source-1.0.76.0
C#动态创建SQLite数据库
调用SQLiteConnection.
CreateFile静态方法创建
SQLiteConnection.CreateFile(path)
path测试路径:Data目录存在,Data2目录不存在
var path1 =
"dummy1.db";//成功
var path2 =
"Data/dummy2.db";//成功
var path3 =
"Data\\dummy3.db";//成功
var path4 =
"c:\\Data\\dummy4.db";//成功
var path5 =
"Data2//dummy5.db";//错误,Data2目录不存在
var path6 =
"C:\\Data2\\dummy6.db";//错误,Data2目录不存在
SQLiteConnection.
CreateFile内部的实现源码:使用了File.Create创建0字节文件
/// <summary>
///
Creates a database file. This just creates a zero-byte file whichSQLite
/// will turn into a database when the file is openedproperly.
/// </summary>
/// <paramname="databaseFileName">Thefile
to create</param>
static
public void CreateFile(string
databaseFileName)
{
FileStream
fs = File.Create(databaseFileName);
fs.Close();
}
C#连接SQLite与数据库安全
常用的连接字符串生成
/// <summary>
/// 生成SQLite连接字符串
/// </summary>
public
static class SQLiteConnectionString
{
public
static string GetConnectionString(stringpath)
{
return
GetConnectionString(path,null);
}
public
static string GetConnectionString(stringpath,
string password)
{
if (string.IsNullOrEmpty(password))
return
"Data Source=" + path;
return
"Data Source=" + path + ";Password=" + password;
}
}
修改数据库密码
/// <summary>
/// 修改密码
/// </summary>
/// <paramname="path"></param>
/// <param name="newPassword"></param>
/// <param name="oldPassword">没有密码时为空</param>
public
static boolChangePassword(stringpath,
string newPassword,string
oldPassword = null)
{
try
{
varcon =
new SQLiteConnection(SQLiteConnectionString.GetConnectionString(path,
oldPassword));
con.Open();
con.ChangePassword(newPassword);
con.Close();
}
catch (Exception ex)
{
return
false;
}
return
true;
}
修改密码测试:
var path2 =
"Data/dummy2.db";//数据库初始密码是空值
ChangePassword(path2,
"123");//成功,数据库密码修改为123
ChangePassword(path2,
"234","");//错误,当前密码是123
ChangePassword(path2,
"234","123");//成功,数据库密码修改为123
ChangePassword(path2,
"","234");//成功,数据库密码修改为空
C#常用类型与SQLite类型的映射
C#类型
|
SQLite类型
|
int
|
INT, INTEGER
|
string
|
CHAR, VARCHAR,VARCHAR2等字符类型
|
long
|
INT64
|
bool
|
BOOLEAN
|
double
|
DOUBLE
|
DateTime
|
DATETIME
|
decmial
|
DECIMAL
|
short
|
SMALLINT
|
float
|
FLOAT
|
*上述类型映射不是唯一的;已进行写读的测试。
C#对SQLite数据库插入记录并返回自动递增ID
SQLite设置自动递增列:创建INTEGER数据类型的列,设置该列为主键,然后才能设置自动递增属性。
执行插入的sql后,调用last_insert_rowid()函数返回自动递增ID
object result =
null;
IDbConnection
conn = null;
IDbCommand
cmd = null;
//略…
inti =
cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
if (i> 0)
{
cmd.CommandText =
"SELECT last_insert_rowid()";
result =
cmd.ExecuteScalar();
}
else
{
result = -1;
}
//略…
C#下的SQLite事务控制
已在TransactionScope管道下测试事务,在内部引发异常,事务能够终止。
try
{
using (System.Transactions.TransactionScope scope =
new System.Transactions.TransactionScope())
{
//引发异常
scope.Complete();
}
}
catch (Exception)
{
}
相关推荐
在本实验“安卓开发实验6——SQLite和SQLiteDatabase应用”中,我们将深入学习如何在Android应用程序中集成SQLite数据库来存储和检索数据,特别是新闻信息。我们将使用ListView组件来动态地展示这些新闻内容,提供...
本文实例讲述了C#解决SQlite并发异常问题的方法。分享给大家供大家参考,具体如下: 使用C#访问sqlite时,常会遇到多线程并发导致SQLITE数据库损坏的问题。 SQLite是文件级别的数据库,其锁也是文件级别的:多个线程...
具体使用可参考文章:http://t.csdn.cn/n54CZ
本文实例讲述了C#操作SQLite数据库之读写数据库的方法。分享给大家供大家参考,具体如下: 这里演示读写数据库并在窗体(Form)中显示其数据,其方式为: 读: Database(SQLite) -> DataAdapter -> DataSet -> ...
在本项目"C#+sqlite 登录Demo"中,我们主要探讨了如何使用C#编程语言结合SQLite数据库实现一个简单的登录系统。这个系统展示了如何在Windows Forms(winForm)应用程序中进行数据库交互,包括设置数据库连接、执行...
在.NET开发环境中,C#是一种常用的编程语言,而SQLite则是一种轻量级的、无服务器、自包含的数据库引擎,广泛应用于嵌入式系统和移动应用。本示例重点讲解了如何利用C#与SQLite数据库交互,特别是涉及到图片数据的...
在本文中,我们将深入探讨如何在C#应用中使用SQLite数据库。SQLite是一个轻量级、开源的嵌入式关系数据库,适用于多种平台,包括Windows、Linux和Mac OS。C#结合SQLite可以创建高效、可移植的数据存储解决方案。下面...
在本文中,我们将深入探讨如何使用C#进行SQLite的基本操作,特别是关注批量插入功能,这在处理大量数据时尤其有用,如标题所述,可以实现百万级数据的秒级插入。SQLite是一个轻量级的数据库引擎,它允许在无需服务器...
《iOS应用源码——SQLite深度解析》 SQLite是一款轻量级的、开源的、自包含的、无服务器的、零配置的SQL数据库引擎,广泛应用于移动设备和嵌入式系统中,包括iOS应用开发。在iOS应用源码中,SQLite扮演着数据存储和...
C#作为.NET框架的一部分,提供了丰富的库来与SQLite进行交互。本教程将详细介绍如何使用C#读取SQLite数据库,以及涉及的源代码和依赖项。 首先,为了在C#项目中使用SQLite,我们需要一个能够与SQLite通信的驱动程序...
本教程将重点讲解如何使用C#编程语言来生成SQLite数据库文件,即.sqlite.db文件,并实现对表的筛选功能。 首先,你需要在C#项目中引入SQLite相关的库。NuGet包管理器是获取这些库的理想途径,可以安装`System.Data....
这份"Android源码——SqliteManager 源码.zip"包含了一些关于SqliteManager的源代码分析以及可能的示例图片,帮助开发者深入理解其工作原理。 首先,我们来看一下SQLiteManager的基本架构。通常,它会包含以下几个...
在C#编程环境中,与SQLite的交互是通过SQLite.NET或者System.Data.SQLite等库来实现的。本篇文章将深入探讨如何在C#中为SQLite创建自定义函数,以满足特定业务需求。 首先,理解SQLite自定义函数的概念。SQLite允许...
这是一个用C#实现的读写sqlite数据库的例子,希望能对正学习这一块的朋友有帮助。 需要使用System.Data.SQLite库 大至步骤如下: 在WinForms项目中添加一个数据库连接。你可以使用SQLiteConnection类来建立数据库...
C#连接sqlite分页显示详细实用教程 源码下载地址:http://download.csdn.net/detail/min20062020/5491029
这个压缩包文件"Android源码——数据库SQLite.zip"可能包含了关于Android中SQLite数据库的源码分析、使用示例以及相关的图像资源,如1-120912223R80-L.png,可能用于解释或展示SQLite在Android中的工作原理。...
该示例演示C#如何连接SQLite并实现增删改查操作;演示批量操作,须要使用事务处理,才能提高效率;同时加入了SQLDapper框架,代码简练,实用,可以直接放在项目中使用;操作完成后,是完全释放了数据库资源的。该压缩...
在本文中,我们将深入探讨如何使用C#编程语言在Visual Studio 2022中实现对SQLite数据库的增删改查(CRUD)基础功能。SQLite是一个轻量级的、自包含的、开源的关系型数据库管理系统,适用于各种应用场景,包括移动...
在本文中,我们将深入探讨如何使用C#与SQLite数据库进行交互,特别关注增、删、改、查(CRUD)操作以及创建加密数据库。SQLite是一个轻量级的、开源的数据库引擎,它允许开发者在无需服务器的情况下存储和管理数据。...
在C#编程环境中,SQLite是一种常用的轻量级数据库,它不需要服务器进程,可以直接在本地文件系统上运行。本文将深入探讨如何在C#中进行SQLite批量更新操作,并对其进行性能测试,以便优化数据库处理效率。 首先,...