`
txf2004
  • 浏览: 7000266 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

C#——SQLite速成

 
阅读更多
为什么我需要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应用

    在本实验“安卓开发实验6——SQLite和SQLiteDatabase应用”中,我们将深入学习如何在Android应用程序中集成SQLite数据库来存储和检索数据,特别是新闻信息。我们将使用ListView组件来动态地展示这些新闻内容,提供...

    C#解决SQlite并发异常问题的方法(使用读写锁)

    本文实例讲述了C#解决SQlite并发异常问题的方法。分享给大家供大家参考,具体如下: 使用C#访问sqlite时,常会遇到多线程并发导致SQLITE数据库损坏的问题。 SQLite是文件级别的数据库,其锁也是文件级别的:多个线程...

    【Android】Room —— SQLite的替代品Demo

    具体使用可参考文章:http://t.csdn.cn/n54CZ

    C#操作SQLite数据库之读写数据库的方法

    本文实例讲述了C#操作SQLite数据库之读写数据库的方法。分享给大家供大家参考,具体如下: 这里演示读写数据库并在窗体(Form)中显示其数据,其方式为: 读: Database(SQLite) -&gt; DataAdapter -&gt; DataSet -&gt; ...

    C#+sqlite 登录Demo

    在本项目"C#+sqlite 登录Demo"中,我们主要探讨了如何使用C#编程语言结合SQLite数据库实现一个简单的登录系统。这个系统展示了如何在Windows Forms(winForm)应用程序中进行数据库交互,包括设置数据库连接、执行...

    C#使用SQLite存取图片的示例

    在.NET开发环境中,C#是一种常用的编程语言,而SQLite则是一种轻量级的、无服务器、自包含的数据库引擎,广泛应用于嵌入式系统和移动应用。本示例重点讲解了如何利用C#与SQLite数据库交互,特别是涉及到图片数据的...

    C#应用SQLite的示例

    在本文中,我们将深入探讨如何在C#应用中使用SQLite数据库。SQLite是一个轻量级、开源的嵌入式关系数据库,适用于多种平台,包括Windows、Linux和Mac OS。C#结合SQLite可以创建高效、可移植的数据存储解决方案。下面...

    IOS应用源码——SQLite.rar

    《iOS应用源码——SQLite深度解析》 SQLite是一款轻量级的、开源的、自包含的、无服务器的、零配置的SQL数据库引擎,广泛应用于移动设备和嵌入式系统中,包括iOS应用开发。在iOS应用源码中,SQLite扮演着数据存储和...

    C#读取SQLite数据库源代码

    C#作为.NET框架的一部分,提供了丰富的库来与SQLite进行交互。本教程将详细介绍如何使用C#读取SQLite数据库,以及涉及的源代码和依赖项。 首先,为了在C#项目中使用SQLite,我们需要一个能够与SQLite通信的驱动程序...

    c# 对sqlite基本操作,带批量插入(百万级秒插)

    在本文中,我们将深入探讨如何使用C#进行SQLite的基本操作,特别是关注批量插入功能,这在处理大量数据时尤其有用,如标题所述,可以实现百万级数据的秒级插入。SQLite是一个轻量级的数据库引擎,它允许在无需服务器...

    C# 生成sqlite文件

    本教程将重点讲解如何使用C#编程语言来生成SQLite数据库文件,即.sqlite.db文件,并实现对表的筛选功能。 首先,你需要在C#项目中引入SQLite相关的库。NuGet包管理器是获取这些库的理想途径,可以安装`System.Data....

    Android源码——SqliteManager 源码.zip

    这份"Android源码——SqliteManager 源码.zip"包含了一些关于SqliteManager的源代码分析以及可能的示例图片,帮助开发者深入理解其工作原理。 首先,我们来看一下SQLiteManager的基本架构。通常,它会包含以下几个...

    c#对SQLite创建自定义函数

    在C#编程环境中,与SQLite的交互是通过SQLite.NET或者System.Data.SQLite等库来实现的。本篇文章将深入探讨如何在C#中为SQLite创建自定义函数,以满足特定业务需求。 首先,理解SQLite自定义函数的概念。SQLite允许...

    vs2019 C# 对SQLite数据库的增删改查的代码实例

    这是一个用C#实现的读写sqlite数据库的例子,希望能对正学习这一块的朋友有帮助。 需要使用System.Data.SQLite库 大至步骤如下: 在WinForms项目中添加一个数据库连接。你可以使用SQLiteConnection类来建立数据库...

    C#连接sqlite分页显示实用教程

    C#连接sqlite分页显示详细实用教程 源码下载地址:http://download.csdn.net/detail/min20062020/5491029

    Android源码——数据库SQLite.zip

    这个压缩包文件"Android源码——数据库SQLite.zip"可能包含了关于Android中SQLite数据库的源码分析、使用示例以及相关的图像资源,如1-120912223R80-L.png,可能用于解释或展示SQLite在Android中的工作原理。...

    C# 操作SQLite示例源码

    该示例演示C#如何连接SQLite并实现增删改查操作;演示批量操作,须要使用事务处理,才能提高效率;同时加入了SQLDapper框架,代码简练,实用,可以直接放在项目中使用;操作完成后,是完全释放了数据库资源的。该压缩...

    C# 对SQLite数据库的增删改查基础功能

    在本文中,我们将深入探讨如何使用C#编程语言在Visual Studio 2022中实现对SQLite数据库的增删改查(CRUD)基础功能。SQLite是一个轻量级的、自包含的、开源的关系型数据库管理系统,适用于各种应用场景,包括移动...

    C# SQLite 增、删、改、查、创建加密数据库 Demo

    在本文中,我们将深入探讨如何使用C#与SQLite数据库进行交互,特别关注增、删、改、查(CRUD)操作以及创建加密数据库。SQLite是一个轻量级的、开源的数据库引擎,它允许开发者在无需服务器的情况下存储和管理数据。...

    C# sqlite 批量更新及性能测试

    在C#编程环境中,SQLite是一种常用的轻量级数据库,它不需要服务器进程,可以直接在本地文件系统上运行。本文将深入探讨如何在C#中进行SQLite批量更新操作,并对其进行性能测试,以便优化数据库处理效率。 首先,...

Global site tag (gtag.js) - Google Analytics