C#数据本地存储方案之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{/// <summary>/// ConnectionString样例:Data Source=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 command.ExecuteScalar();}}}} }
本文出处:http://www.cnblogs.com/luminji/
转载于:https://www.cnblogs.com/zhangchenliang/archive/2012/04/12/2443994.html
C#数据本地存储方案之SQLite相关推荐
- C#数“.NET研究”据本地存储方案之SQLite
即使是做网络应用,在断线情况下,也需要考虑数据的本地存储.在SQLite出现之前,数据量大的情况下,我们一直使用ACCESS,数据量小,则文件存储.ACCESS不支持事务原子性,在断电情况下(这种情况 ...
- PC端本地存储方案,Windows和Mac双端通用方案
功能要求:缓存数据 没有频繁的读写,存储服务端下发的数据,当数据有更新的时候,本地存储会进行更新,同时刷新内存. 本地存储作为持久化储存方案,程序每次启动时会读取数据加载到内存,当数据有更新的时候,也 ...
- 高性能、免运维,博云开源云原生本地存储方案:Carina
2021 年 10 月 11 日,博云正式开源 Carina 本地存储方案,Carina 基于 Kubernetes 及 LVM 实现,提供了数据库与中间件等有状态应用在 Kubernetes 中运行 ...
- uniapp结合腾讯云及时通信IM的聊天记录本地存储方案
uniapp结合腾讯云及时通信IM的聊天记录本地存储方案 UniApp 是一个跨平台的应用开发框架,可以使用 Vue.js 开发多端应用(如H5.小程序.App等).在 UniApp 中,可以使用 u ...
- 数据本地存储方法封装(笔记)localStorage、sessionStorage
数据本地存储方法封装(笔记)localStorage.sessionStorage 方法: import storage from 'good-storage'const SELLER_KEY = ' ...
- 年轻人不讲武德,TDengine边缘侧数据存储方案挑战SQLite
上周,涛思数据与EMQ在线上Meetup上联合发布了工业互联网一体化解决方案,基于TDengine.EMQ X搭建一个集工业数据采集.汇聚.清洗.存储分析以及可视化展示等能力于一体的轻量级边缘计算工业 ...
- uniapp本地数据库_Uniapp教程|App/uni-app离线本地存储方案
5+App的离线存储 HTML5+的离线本地存储有如下多种方案: HTML5标准方案:cookie.localstorage.sessionstorage.websql.indexedDB HTML5 ...
- Ripple数据本地存储概览
1.数据文件及介绍 1.1 Sqlite数据 文件 包含表 内容 Ledger.db Ledgers 区块信息 Ledger.db Validations 本地历史区块共识信息 Transaction ...
- TableStore: 海量结构化数据分层存储方案
2019独角兽企业重金招聘Python工程师标准>>> 前言 表格存储是阿里云自研分布式存储系统,可以用来存储海量结构化.半结构化的数据.表格存储支持高性能和容量型两种实例类型.高性 ...
最新文章
- python统计linux流量,通过Python进行MySQL表信息统计
- mssql 查询当前自增序号_查询函数Choose、Lookup、Hlookup、Vlookup应用技巧解读
- IOS第二天多线程-04简化单例模式
- 优秀!结构最清晰的Yolov3 head和loss实现完全解析
- EXTRONICS推出IRFID500便携式UHF RFID读写器
- Codeforces 1041C(贪心+set)
- 汽车系统实现--搜索功能
- 一个面试题关于变量的生命周期
- JavaScript 弹出层,背景变暗
- C++打印size_t和ssize_t和int64_t和uint64_t
- python消费kafka逻辑处理导致cpu升高_Kafka 消费迟滞监控工具 Burrow
- HAproxy配置文件操作
- chrome浏览器再次打开黑屏一段时间
- 如何查看虚拟机服务器ftp,如何通过FTP工具查看虚拟空间使用了多少?
- 群消息已读回执(这个diao),究竟是推还是拉?
- 教你实现微信8.0『炸裂』的表情特效
- Learning Framer X 学习Framer X Lynda课程中文字幕
- Java中带返回值的线程池Future
- JavaScript之DOM学习笔记
- 团队Github实战训练