SQLite介绍

在介绍System.Data.SQLite之前需要介绍一下SQLite,SQLite是一个类似于Access的单机版数据库管理系统,它将所有数据库的定义(包括定义、表、索引和数据本身)都保存在一个单一的文件中。并且,SQLite是一个用C实现的类库,它在内存消耗、文件体积、简单性方面都有不错的表现,如果数据在10W条以下,查询速度也是相当快的。

SQLite具有以下特征:

实现多数SQL92的标准,包括事务(原子性、一致性、隔离性和持久性)、触发器和大多数的复杂查询。

不对插入或者更新的数据进行类型检查,你可以将字符串插入到整数列中(这个可能让有些用户不太适应)。

支持Windows/Linux/Unix等主流系统,还支持嵌入式系统如Android或Windows Mobile。

System.Data.SQLite

System.Data.SQLite是SQLite的加强版,它可以无需.NET Framework支持,由于它内部包含了一个ADO.NET 2.0引擎,所以.NET开发人员可以利用System.Data.SQLite方便地开发.NET程序。

System.Data.SQLite及SQLite也有一些限制,比如不支持行级及表级锁,当一个连接锁定数据库以用于写入数据,其它的数据库连接只能等待那个连接操作完成之后进行读写操作,SQLite.NET尝试在超时期内多次尝试。

实际上对于大型的应用我们都会选择一些大型专业的数据库,System.Data.SQLite和SQLite适合于一些受限的场合,比如手机等。在这里我讲一个真实的经历,在此前我曾经做过一个小型系统,要分析三个Excel文件,其中两个的记录大约在400条左右,而另外一个大约是1万条左右,对于这么一个系统如果使用数据库,即使单机版的Access,导入之后利用数据库的特性进行分析,将是一个相对较为简单的事情,因为我们可以在数据库里使用连接查询,还可以对记录使用数据库函数,但是对方提供的信息是部署的机器上尽管安装了Office,但是只是安装了Word、Excel和Outlook,而没有Access,对方也不希望安装其它的软件,由于我也不能确定没有安装Access的机器上是否能通过OleDB访问.mdb文件,所以没有办法,只有才有内存表的形式,即将Excel中的数据读取到DataTable中,然后对三个DataTable进行分析,尽管做了很多优化,但是效率仍然不是太理想。对于这种情况,如果我当时知道System.Data.SQLite就好办多了,将三个Excel中的数据导入到System.Data.SQLite中,然后利用System.Data.SQLite提供的函数处理起来是相当省事和方便的。对于System.Data.SQLite来说,部署时不需要安装,仅需要一个System.Data.SQLite.dll就够了,这个dll仅866K!而且它不需要像使用Com组件那样需要注册。

System.Data.SQLite的更多相关文章

  1. 启用SQLite的Data Provider 运行WECOMPANYSITE时遇到ERROR CREATING CONTEXT 'SPRING.ROOT': ERROR THROWN BY A DEPENDENCY OF OBJECT 'SYSTEM.DATA.SQLITE'

    从网上下载的源码WeCompanySite,运行时报错 Error creating context 'spring.root': Error thrown by a dependency of ob ...

  2. .Net4.0以上使用System.Data.Sqlite

    最近对Sqlite感兴趣,就尝试了一下用c#连接,我用的版本是vs2013,默认开发环境是.net4.5,,按照网上的教材,下载了System.Data.Sqlite,然后写了下面这个简单的测试代码, ...

  3. IIS发布网站出现“未能加载文件或程序集“System.Data.SQLite”或它的某一个依赖项。”的解决方法

    未能加载文件或程序集“System.Data.SQLite”或它的某一个依赖项.试图加载格式不正确的程序.              说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈 ...

  4. 引用64位dll时候出现 未能加载文件或程序集“System.Data.SQLite”或它的某一个依赖项。试图加载格式不正确的程序。

    引用64位dll时候出现 未能加载文件或程序集“System.Data.SQLite”或它的某一个依赖项.试图加载格式不正确的程序. 需要在web.config增加配置 <startup use ...

  5. Could not load file or assembly 'System.Data.SQLite' or one of its dependencies

    试图加载格式不正确的程 异常类型 异常消息Could not load file or assembly 'System.Data.SQLite' or one of its dependencies ...

  6. 未能加载文件或程序集“System.Data.SQLite.DLL”或它的某一个依赖项

    今天在部署code到测试环境的时候 出现了未能加载文件或程序集"System.Data.SQLite.DLL"或它的某一个依赖项 这个错误,其实错误的的原因有很多,1.典型的是是版 ...

  7. SQLite 解决:Could not load file or assembly 'System.Data.SQLite ... 试图加载格式不正确的程序/or one of its dependencies. 找不到指定的模块。

     Could not load file or assembly 'System.Data.SQLite.dll' or one of its dependencies. 找不到指定的模块. 错误提示 ...

  8. 能加载文件或程序集“System.Data.SQLite”或它的某一个依赖项。试图加载格式不正确的程序。

    现象: 能加载文件或程序集“System.Data.SQLite”或它的某一个依赖项.试图加载格式不正确的程序.

  9. 未能加载文件或程序集“System.Data.SQLite”或它的某一个依赖项

    Win7 64位 IIS未能加载文件或程序集"System.Data.SQLite"或它的某一个依赖项 未能加载文件或程序集"System.Data.SQLite&quo ...

随机推荐

  1. oracle中如何创建dblink

    当用户要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中必须创建了远程数据库的dblink,通过dblink本地数据库可以像访问本地数据库一样访问远程数据库表中的数据.下面讲介绍如何在本地数 ...

  2. nulls last ratio_to_report(id) over() 占比函数

     ORDER BY t3.pctl DESC NULLS LAST http://blog.itpub.net/9932141/viewspace-600751/ http://blog.csdn.n ...

  3. Hibernate createCriteria查询详解

    本文转载自 : http://penghao122.javaeye.com/blog/80794 1.创建一个Criteria实例 net.sf.hibernate.Criteria这个接口代表对一个 ...

  4. C++多线程编程入门之经典实例

    多线程在编程中有相当重要的地位,我们在实际开发时或者找工作面试时总能遇到多线程的问题,对多线程的理解程度从一个侧面反映了程序员的编程水平. 其实C++语言本身并没有提供多线程机制,但Windows系统 ...

  5. 使用ViewPager实现屏幕滑动效果

    oncreate中设置viewPager viewPager.setPageTransformer(true,new DepthPageTransformer());//设置页面过滤动画效果 page ...

  6. JVM-class文件完全解析-属性表集合

    属性表集合 在前面魔数,次版本号,主板本号,常量池入口,常量池,访问标志,类索引,父类索引,接口索引集合,字段表集合,方法表集合,那么接下来就是属性表集合了.   在class文件,字段表,方法表都可 ...

  7. Notes of learning AutoLayout

    在XCode5中,如果我们添加一个Button或者Label,或者其他的什么标准View,而不设置任何constraints,IB会自动生成constraints,而这些constraints是fix ...

  8. 开发经验之状态机思想,分别使用了swift,OC,C,PHP语言实现

    这里设计一个简单的练习,使用状态机思想实现,分别使用了swift,OC,C,PHP语言实现 题目:1到10000遍历,开始-打印奇数-遇到7的倍数开始打印偶数--遇到10的倍数打印奇数   //部分结 ...

  9. windows7共享硬盘 虚拟机Mac访问windows7硬盘

    选择本地磁盘(G)-->右键-->共享-->高级共享点击高级共享 确定   完成共享 虚拟机Mac 访问共享磁盘 2.苹果MAC系统,点击桌面.打开顶部菜单 “前往”.   3.菜单 ...

  10. Python12期培训班-day1-三级菜单代码分享

    #!/usr/bin/env python3 import sys import os zonecode = { '广东省': {'广州市':['越秀区','海珠区','荔湾区','天河区'], '深 ...