C#数“.NET研究”据本地存储方案之SQLite

  即使是做网络应用,在断线情况下,也需要考虑数据的本地存储。在SQLite出现之前,数据量大的情况下,我们一直使用ACCESS,数据量小,则文件存储。ACCESS不支持事务原子性,在断电情况下(这种情况总是会发生)会导致数据很难恢复。

  一:安装

  SQLITE,是一款轻型的数据库,是遵守ACID的关联式数据上海网站建设库管理系统。我直接使用的是http://sqlite.phxsoftware.com/(An open source ADO.NET provider for the SQLite database engine)。下载完毕是一个EXE,安装后根目录如下:

  Bin下有一个测试工具,可以查看本地运行SQLITE的各项性能指标。

  二:新建数据库

  安装完毕后,打开visual studio,新建数据连接,可以看到数据源多了一项SQLite。

  新建连接,如下图。SQLITE的数据库,保存后是一个文件。

  三:数据库维护

  可以在VS中方面的维护SQLITE数据,如下图:

  可以在VS中使用类似SQL查询分析器的功能,如下图:

  四:混合模式

  安装完毕,可以直接在项目集的引用中,多了

  System.Data.SQLite

  System.Data.SQLite.Linq

  两个程序集,由于http://sqlite.phxsoftware.com/的System.Data.SQLite是混合模式程序集,是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集。故需要在App.config中配置如下参数。


<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
</configuration>

  五:SQLiteHelper

  最后,提供一个自己写的SQLiteHelper:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SQLite;
using System.Data;
using System.Data.Common;

namespace Com.Luminji.DataService.SQLHelpers
{
public class SQLiteHelper
{
上海徐汇企业网站制作style="color: #808080;">/// <summary>
/// ConnectionString样例:Datasource=Test.db3;Pooling=true;FailIfMissing=false
/// </summary>
public static string ConnectionString { get; set; }

private static void PrepareCommand(SQLiteCommand cmd, SQLiteConnection conn, string cmdText, params object[] p)
{
if (conn.State != ConnectionState.Open)
conn.Open();
cmd.Parameters.Clear();
cmd.Connection = conn;
cmd.CommandText = cmdText;
cmd.CommandType = CommandType.Text;
cmd.CommandTimeout = 30;
if (p != null)
{
foreach (object parm in p)
cmd.Parameters.AddWithValue(string.Empty, parm);
}
}

public static DataSet ExecuteQuery(string cmdText, params object[] p)
{
using (SQLiteConnection conn = new SQLiteConnection(ConnectionString))
{
using (SQLiteCommand command = new SQLiteCommand())
{
DataSet ds = new DataSet();
PrepareCommand(command, conn, cmdText, p);
SQLiteDataAdapter da = new SQLiteDataAdapter(command);
da.Fill(ds);
return ds;
}
}
}

public static int ExecuteNonQuery(string cmdText, params object[] p)
{
using (SQLiteConnection conn = new SQLiteConnection(ConnectionString))
{
using (SQLiteCommand command = new SQLiteCommand())
{
PrepareCommand(command, conn, cmdText, p);
return command.ExecuteNonQuery();
}
}
}

public static SQLiteDataReader ExecuteReader(string cmdText, params object[] p)
{
using (SQLiteConnection conn = new SQLiteConnection(ConnectionString))
{
using (SQLiteCommand command = new SQLiteCommand())
{
PrepareCommand(command, conn, cmdText, p);
return command.ExecuteReader(CommandBehavior.CloseConnection);
}
}
上海徐汇企业网站设计与制作 }

public static object ExecuteScalar(string cmdText, params object[] p)
{
using (SQLiteConnection conn = new SQLiteConnection(ConnectionString))
{
using (SQLiteCommand command = new SQLiteCommand())
{
PrepareCommand(command, conn, cmdText, p);
return上海企业网站设计与制作n style="color: #000000;"> command.ExecuteScalar();
}
}
}

}
}

  六:附注

  SQLite官方网站: http://www.sqlite. org/ 时第一眼看到关于SQLite的特性。

  1. ACID事务

  2. 零配置 – 无需安装和管理配置

  3. 储存在单一磁盘文件中的一个完整的数据库

  4. 数据库文件可以在不同字节顺序的机器间自由的共享

  5. 支持数据库大小至2TB
上海闵行企业网站设计与制作>

  6. 足够小, 大致3万行C代码, 250K

  7. 比一些流行的数据库在大部分普通数据库操作要快

  8. 简单, 轻松的API

  9. 包含TCL绑定, 同时通过Wrapper支持其他语言的绑定

  10. 良好注释的源代码, 并且有着90%以上的测试覆盖率

  11. 独立: 没有额外依赖

  12. Source完全的Open, 你可以用于任何用途, 包括出售它

  13. 支持多种开发语言,C, PHP, Perl, Java, ASP .NET,Python

时间: 2024-08-01 15:40:44

C#数“.NET研究”据本地存储方案之SQLite的相关文章

C#数据本地存储方案之SQLite

即使是做网络应用,在断线情况下,也需要考虑数据的本地存储.在SQLite出现之前,数据量大的情况下,我们一直使用ACCESS,数据量小,则文件存储.ACCESS不支持事务原子性,在断电情况下(这种情况总是会发生)会导致数据很难恢复. 一:安装 SQLITE,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统.我直接使用的是http://sqlite.phxsoftware.com/(An open source ADO.NET provider for the SQLite databas

一起谈.NET技术,C#数据本地存储方案之SQLite

即使是做网络应用,在断线情况下,也需要考虑数据的本地存储.在SQLite出现之前,数据量大的情况下,我们一直使用ACCESS,数据量小,则文件存储.ACCESS不支持事务原子性,在断电情况下(这种情况总是会发生)会导致数据很难恢复. 一:安装 SQLITE,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统.我直接使用的是http://sqlite.phxsoftware.com/(An open source ADO.NET provider for the SQLite databas

HTML5的本地存储方案LOCALSTORAGE的例子

本地存储解决方案很多,比如Flash SharedObject.Google Gears.Cookie.DOM Storage.User Data.window.name.Silverlight.Open Database等. html5的本地存储localStorage 以下是各种本地存储方案的特点: Cookie: 在web中得到广泛应用,但局限性非常明显,容量太小,有些站点会因为出于安全的考虑而禁用cookie,cookie没有想象中的那么安全,Cookie 的内容会随着页面请求一并发往服

开源IaaS ZStack本地存储使用手册

本地存储(Local Storage)是继NFS主存储.iSCSI主存储之后ZStack支持的第三类主存储.本地存储相比网络共享存储而言,更轻量.更方便(甚至在网络速度和网络存储性能不佳的情况下,本地存储的性能也更高),所以也有很多客户采用本地存储方案来搭建云系统.ZStack自v0.8.0开始支持本地存储.本教程仅会介绍如何添加本地存储来做云环境的主存储. ZStack对于本地存储的使用有如下定义: 1. 一个Cluster内的所有计算节点应该有相同的目录放本地存储. 2. 如果一个Clust

HTML5 WebStorage(HTML5本地存储技术)_CSS/HTML

WebStorage是HTML5中本地存储的解决方案之一,在HTML5的WebStorage概念引入之前除去IE User Data.Flash Cookie.Google Gears等看名字就不靠谱的解决方案,浏览器兼容的本地存储方案只有使用cookie.有同学可能会问,既然有了cookie本地存储,为什么还要引入WebStorage的概念? Cookie肿么了 cookie的缺陷是非常明显的 1. 数据大小:作为存储容器,cookie的大小限制在4KB左右这是非常坑爹的,尤其对于现在复杂的业

基于加密机制的云计算数据可靠存储方案研究

基于加密机制的云计算数据可靠存储方案研究 赵莉  王魁祎 为了克服因收发双方都使用同样钥匙导致的其安全性不高等缺点,引入深度加密机制,与AES(Advanced Encryption Standard)算法耦合,设计了基于双级加密的云计算数据可靠存储方案.先采用AES对用户数据客户端进行对称加密,到达云资源管理器后,采用分布式重组的方法进行深度加密,构造了"初级-深度"双级加密的云计算数据可靠存储结构,并完成了基于加密的云计算数据安全存储加密和解密操作流程.借助Eclipse与Java

如何集成云层与本地存储

云和本地存储正走向越来越紧密的整合,于是云成为了另一个存储管理员可用的层级. 组织不大可能把100%的数据都移到云服务上,但大多数企业都会至少想让一部分数据能够利用云存储的优势.最好的方法是以混合的方式使用云存储来创建一个本地存储资源和云的无缝集成.这个云计算层的整合可以通过专用的软件,支持云的应用或者存储系统或云网关产品中内建的功能来达成. 为什么要追逐云? 今年恐怕将是公有云采纳终于超越开发项目和Web 2.0公司,并堂堂正正的踏入IT主流的一年.云服务供应商可以提供在弹性.敏捷性.可扩展能

红包场景下,高性能本地存储技术将硬件性能发挥到极致

直播视频回顾:https://yq.aliyun.com/edu/lesson/play/619 幻灯片下载:http://yqfile1.alicdn.com/23eb4c8ff139b424f4430f7f584915ef.pdf 以下内容根据现场分享和幻灯片整理而成. 红包业务特点 支付宝红包的大致业务架构包括单元化部署.统一接入.网关.DAO.数据库以及在线\离线数据处理,整体流程很长.其中数据库在整理的交易链路中起到承上启下的作用.在红包业务中,数据库具有三大特点: (1)峰值压力大.

js仿微博实现统计字符和本地存储功能_javascript技巧

随着移动设备和Web应用的普及,为了更好的便于用户的使用,对于网页或应用程序的用户体验要求就越来越高,确实是这样,作为用户更喜欢选择用户体验效果好的网站或应用程序,所以作为开发者的我们就需要开发出更人生化的应用程序了. 相信许多人有使用微博的经验,像微博这样的社交平台,好的用户体验就变得尤其重要了. 例如:我们在发微博时,文本框会实时地提示我们剩余字符数,这样人性化的提示方便了用户知道微博字数的限制,同时也限制了用户的输入字数. 有一句话我们要牢记在心的是:凡是输入,必有限制:凡是输入,必须校验