【转载在 .NET 里面使用 SQLite】

在 .NET 里面使用 SQLite, 我这里使用的wrapper是 System.Data.SQLite,它只需要一个dll,接口符合ADO.Net 2.0的定义,性能也不错,NHibernate用的也是它,目前支持ADO.NET 3.5了,支持集成在 VS2005 和 VS2008里面,而且支持wince,是个亮点

因为符合ADO.NET的规范,所以使用方式,基本和 SqlClient, OleDb等原生的一致

using System.Data; using System.Data.SQLite; //...

using (SQLiteConnection cn = new SQLiteConnection(     "Data Source=Test.db3;Pooling=true;FailIfMissing=false")     )

//Pooling设置为true时,SQL连接将从连接池获得,如果没有则新建并添加到连接池中,默认是true。 //FailIfMissing默认为false,如果数据库文件不存在,会自动创建一个新的,若设置为true,将不会创建,而是抛出异常信息。

{     //在打开数据库时,会判断数据库是否存在,如果不存在,则在当前目录下创建一个     cn.Open();

using (SQLiteCommand cmd = new SQLiteCommand())     {         cmd.Connection = cn;

//建立表,如果表已经存在,则报错         cmd.CommandText = "CREATE TABLE [test] (id int, name nvarchar(20))";         cmd.ExecuteNonQuery();

//插入测试数据         for (int i = 2; i < 5; i++)         {             cmd.CommandText = string.Format("INSERT INTO [test] VALUES ({0}, ‘杜思波技术讨论区域‘)", i);             cmd.ExecuteNonQuery();         }

for (int i = 5; i < 10; i++)         {             cmd.CommandText = string.Format("INSERT INTO [test] VALUES ({0}, ‘English Test‘)", i);             cmd.ExecuteNonQuery();         }

//读取数据         cmd.CommandText = "SELECT * FROM [test]";         using (SQLiteDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection))         {             while (dr.Read())             {                 Console.WriteLine("第{0} 条:{1}", dr.GetValue(0), dr.GetString(1));             }         }     } }

在C#中使用SQLite

1、通过Add References引用SQLite ADO .NET安装目录的bin目录下的System.Data.SQLite.DLL。

2、创建数据库文件:因为始终是个0字节文件,应该利用IO也可以(?!)。

System.Data.SQLite.SQLiteConnection.CreateFile(datasource);

3、连接数据库

System.Data.SQLite.SQLiteConnection conn = new System.Data.SQLite.SQLiteConnection(connectionString);

connectionString中包含了数据库的一些配置信息,比如数据库文件,数据库打开的密码等,可以利用System.Data.SQLite.SQLiteConnectionStringBuilder来辅助创建connectionString

4、创建表、读取数据等和Access或MS SQL没多大区别了

            //创建一个数据库文件             string datasource="h:/test.db";             System.Data.SQLite.SQLiteConnection.CreateFile(datasource);             //连接数据库             System.Data.SQLite.SQLiteConnection conn = new System.Data.SQLite.SQLiteConnection();             System.Data.SQLite.SQLiteConnectionStringBuilder connstr = new System.Data.SQLite.SQLiteConnectionStringBuilder();             connstr.DataSource = datasource;             connstr.Password = "admin";//设置密码,SQLite ADO.NET实现了数据库密码保护             conn.ConnectionString = connstr.ToString();                         conn.Open();             //创建表             System.Data.SQLite.SQLiteCommand cmd = new System.Data.SQLite.SQLiteCommand();             string sql = "CREATE TABLE test(username varchar(20),password varchar(20))";             cmd.CommandText=sql;             cmd.Connection=conn;             cmd.ExecuteNonQuery();             //插入数据             sql = "INSERT INTO test VALUES(‘ekinglong‘,‘mypassword‘)";             cmd.CommandText = sql;             cmd.ExecuteNonQuery();             //取出数据             sql = "SELECT * FROM test";             cmd.CommandText = sql;             System.Data.SQLite.SQLiteDataReader reader = cmd.ExecuteReader();             StringBuilder sb = new StringBuilder();             while (reader.Read())             {                 sb.Append("username:").Append(reader.GetString(0)).Append("/n")                 .Append("password:").Append(reader.GetString(1));             }             MessageBox.Show(sb.ToString());

时间: 2024-07-31 00:41:22

【转载在 .NET 里面使用 SQLite】的相关文章

SQLite可视化管理工具汇总

版权声明:本文为博主原创文章,未经博主允许不得转载. 搜集了一些SQLite工具,在这里做个总结,有的工具用的多一些,有的只是简单试用,甚至未试用,所以有描述不当的还请回复指正,也欢迎补充完善! 2015-03-11 更新情况: SQLiteSpy最新版本1.9.8,重大改变,支持db拖拽 SQLiteStudio最新版本3.0.3,重大改变,打开数据量较大的数据库速度明显改善,还有count查询,堪比SQLiteExpert SQLiteExpert 最新版本3.5.76,相信也更好用了,尚未

Android 数据存储——SQLite实例、判断数据库中表是否存在

本文主要记录一下Android SQLiteDatabase中如何判断数据库中表是否存在,以及测试SQLiteDatabase数据库的基本操作.有关SQLite的详细说明,可以查看转载的Android 数据存储--SQLite使用详解 例子: AndroidManifest.xml--没有做任何修改,创建工程默认 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="

转载-Android数据库高手秘籍(一)——SQLite命令

原文地址: http://blog.csdn.net/guolin_blog/article/details/38461239 Android数据库高手秘籍(一)——SQLite命令 分类: Android数据库高手秘籍2014-09-04 09:10 7310人阅读 评论(42) 收藏 举报 Android数据库SQLite高手秘籍LitePal 转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/38461239 要想熟练地操作任

Android SQLite总结[转载]

[转载] :http://blog.163.com/zqy216_2008/blog/static/4119371820119954812509/ 最近在做的项目涉及到了SQLite,大学时没有好好学习数据库,趁这次项目学习总结下. SQLite是一款轻量级数据库,它的设计目的是嵌入式,而且它占用的资源非常少,在嵌入式设备中,可能只需要几百KB,这也是 Android 系统采用 SQLite 数据库的原因之一. 下面给出SQLite的数据类型. 一般数据采用的固定的静态数据类型,而SQLite采

[转载]提升SQLite数据插入效率低、速度慢的方法

转载地址:http://blog.csdn.net/majiakun1/article/details/46607163,如果有侵犯原创,请留言告知,本人会及时删除. 前言 SQLite数据库由于其简单.灵活.轻量.开源,已经被越来越多的被应用到中小型应用中.甚至有人说,SQLite完全可以用来取代c语言中的文件读写操作.因此我最近编写有关遥感数据处理的程序的时候,也将SQLite引入进来,以提高数据的结构化程度,并且提高大数据的处理能力(SQLite最高支持2PB大小的数据).但是最开始,我发

【Android数据存储】SQLite使用实例(附源码)(转载)

原文地址:http://blog.csdn.net/wirelessqa/article/details/8583101 java当中提供了相当多的封装好的类来执行对SqlLite的操作,如: SQLiteDatabase 作为数据库操作的类,类似于C#当中我们自己写的helper,PS(java对此还真是高度封装) SQLiteOpenHelper 作为作为维护和管理数据库的基类实例: 会员信息管理 功能:1.查看数据库 2.清空数据库 3.增加会员 4.删除会员 5.更新会员 6.查找会员

sqlite第三方类库:FMDB使用(转载)

本文转自一位台湾ios开发者的blog,由于blog地址被墙掉,转发过来,供大家参考原文地址:https://github.com/ccgus/fmdb更多的使用,大家可以看看source中的README.markdown 首先到这裡下载FMDB的source code,接著在解开的档案裡,把src资料夹下除了fmdb.m的档案加入到自己的iOS专案,最后在专案中加入libsqlite3.dylib这个函式库就可以了.啥?有人问為什麼不用加入fmdb.m?简单讲,这个档案是fmdb的使用说明.裡

针对数据量较大的表,需要进行跨库复制,采用navcat 实现sqlite数据库跨数据库的数据表迁移 [转载]

2014年12月13日 14:36 新浪博客 (转自http://www.cnblogs.com/nmj1986/archive/2012/09/17/2688827.html) 需求: 有两个不同的SQLite数据库 A.B,需要将B数据库中的表复制到A数据库中去,数据量较小的时候,可以在数据库可视化工具Navicat中直接将表导成.sql文件,然后将sql文件在另一个数据库运行即可.但是当数据量较大时,这样操作会丢失一部分数据.因此针对这种情况可采用下述方法: 解决办法: (1)使用软件:S

【转载】Android数据存储之SQLite

SQLite是D.Richard Hipp用C语言编写的开源嵌入式数据库引擎.它支持大多数的SQL92标准,并且可以在所有主要的操作系统上运行. 在Android中创建的SQLite数据库存储在:/data/data/<包名>/databases/目录下. 主要特点: -轻量级 -独立性,没有不依赖,无需安装 -跨平台,支持众多操作系统 -支持高达2TB大小的数据库 -每个数据库以单个文件的形式存在 -以B-Tree的数据结构形式存储在硬盘 SQLite的数据类型: SQLite支持NULL.