注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

BCB-DG's Blog

...

 
 
 

日志

 
 

在.NET中利用SQLite ADO.NET使用SQLite数据库  

2011-07-08 08:33:42|  分类: DotNet |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
//转

一、关于SQLite ADO.NET

System.Data.SQLite

是一个原始SQLite的加强版. 它将是一个原版的sqlite3.dll完全替代品 (你甚至就可以把它重命名为sqlite3.dll). 它不需要链接.NET 运行时,所以可以脱离.NET独立发布, 然而它内嵌了一个完整的 ADO.NET 2.0 引擎,为开发提供了完整的支持.

以下是它的特性简介:

完整的 ADO.NET 2.0 实现

整个工程完全基于VS2005 和 ADO.NET 2.0全新构建, 使用了全部的ADO.NET framework新特性. 包括完整的 DbProviderFactory 支持, 自动的分布式事务调用, 广泛的模式支持, 此外所有的类都是从 ADO.NET 2.0 的基类继承下来的.

支持完整和精简的 .NET Framework 以及 C/C++

这个库不需要链接依赖.NET运行时,100%兼容原始的sqlite3.dll,可以使用非托管的C/C++ 进行开发.

可移植的数据库文件

未加密的 SQLite 数据库文件可以自由的跨平台和处理器使用,包括非Windows平台. 加密之后的数据库可以在全部Windows平台上使用.

可以信赖的速度,比包括Sql Server Mobile 在内的其它大多数嵌入式数据库都要快速

SQLite'安装所占用的空间相对于Sql Mobile可谓忽略不计了. 它在运行的时候占用更少的内存,同时生成的数据库也更小.

数据库加密

可以对整个数据库文件进行加密. 支持二进制和明文的密码.

支持使用Visual Studio 2005 设计

你可以向Server Explorer添加一个SQLite 连接, 使用查询设计器创建处查询语句, 向一个数据集中拖拽一个表格等等! SQLite的开发者可以在包括体验版在内的各种Visual Studio 2005下工作.

单文件再发布包容量在400kb以下

将SQLite本身和ADO.NET 封装捆绑编译在一起. 预编译的二进制文件提供了 x86, IA64, x64 和ARM 的版本.

广泛的SQL语言支持

SQLite 支持大部分的SQL92 标准(see below). 支持命名和未命名的参数以 UTF-8 和UTF-16 编码通过优化的管道传入SQLite 内核.

用户自定义的函数 和 排序

全面支持用户自定义函数和排序方式,意味着你可以用自己喜欢的.NET语言来实现SQLite没有提供的特性. 这一切将非常的简单.

提供了全部的源代码. 100% 免费.

全部的封装库源代码都是公有的. 无论是个人还是商业应用都没有任何的协议约束.

主页地址:http://sqlite.phxsoftware.com/

下载地址(最新版本1.0.66.0):http://sourceforge.net/projects/sqlite-dotnet2/files/SQLite%20for%20ADO.NET%202.0/1.0.66.0/SQLite-1.0.66.0-setup.exe/download

二、在C#中使用SQLite

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

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

利用SQLite ADO.NET在.NET(C#)中使用SQLite数据库 - 白云 - 白云System.Data.SQLite.SQLiteConnection.CreateFile(datasource);

3、连接数据库

利用SQLite ADO.NET在.NET(C#)中使用SQLite数据库 - 白云 - 白云System.Data.SQLite.SQLiteConnection conn = new System.Data.SQLite.SQLiteConnection(connectionString);

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

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

            //创建一个数据库文件

利用SQLite ADO.NET在.NET(C#)中使用SQLite数据库 - 白云 - 白云            string datasource="h:/test.db";

利用SQLite ADO.NET在.NET(C#)中使用SQLite数据库 - 白云 - 白云             System.Data.SQLite.SQLiteConnection.CreateFile(datasource);

利用SQLite ADO.NET在.NET(C#)中使用SQLite数据库 - 白云 - 白云            //连接数据库

利用SQLite ADO.NET在.NET(C#)中使用SQLite数据库 - 白云 - 白云             System.Data.SQLite.SQLiteConnection conn = new System.Data.SQLite.SQLiteConnection();

利用SQLite ADO.NET在.NET(C#)中使用SQLite数据库 - 白云 - 白云             System.Data.SQLite.SQLiteConnectionStringBuilder connstr = new System.Data.SQLite.SQLiteConnectionStringBuilder();

利用SQLite ADO.NET在.NET(C#)中使用SQLite数据库 - 白云 - 白云             connstr.DataSource = datasource;

利用SQLite ADO.NET在.NET(C#)中使用SQLite数据库 - 白云 - 白云             connstr.Password = "admin";//设置密码,SQLite ADO.NET实现了数据库密码保护

利用SQLite ADO.NET在.NET(C#)中使用SQLite数据库 - 白云 - 白云             conn.ConnectionString = connstr.ToString();            

利用SQLite ADO.NET在.NET(C#)中使用SQLite数据库 - 白云 - 白云             conn.Open();

利用SQLite ADO.NET在.NET(C#)中使用SQLite数据库 - 白云 - 白云            //创建表

利用SQLite ADO.NET在.NET(C#)中使用SQLite数据库 - 白云 - 白云             System.Data.SQLite.SQLiteCommand cmd = new System.Data.SQLite.SQLiteCommand();

利用SQLite ADO.NET在.NET(C#)中使用SQLite数据库 - 白云 - 白云            string sql = "CREATE TABLE test(username varchar(20),password varchar(20))";

利用SQLite ADO.NET在.NET(C#)中使用SQLite数据库 - 白云 - 白云             cmd.CommandText=sql;

利用SQLite ADO.NET在.NET(C#)中使用SQLite数据库 - 白云 - 白云             cmd.Connection=conn;

利用SQLite ADO.NET在.NET(C#)中使用SQLite数据库 - 白云 - 白云             cmd.ExecuteNonQuery();

利用SQLite ADO.NET在.NET(C#)中使用SQLite数据库 - 白云 - 白云            //插入数据

利用SQLite ADO.NET在.NET(C#)中使用SQLite数据库 - 白云 - 白云             sql = "INSERT INTO test VALUES('ekinglong','mypassword')";

利用SQLite ADO.NET在.NET(C#)中使用SQLite数据库 - 白云 - 白云             cmd.CommandText = sql;

利用SQLite ADO.NET在.NET(C#)中使用SQLite数据库 - 白云 - 白云             cmd.ExecuteNonQuery();

利用SQLite ADO.NET在.NET(C#)中使用SQLite数据库 - 白云 - 白云            //取出数据

利用SQLite ADO.NET在.NET(C#)中使用SQLite数据库 - 白云 - 白云             sql = "SELECT * FROM test";

利用SQLite ADO.NET在.NET(C#)中使用SQLite数据库 - 白云 - 白云             cmd.CommandText = sql;

利用SQLite ADO.NET在.NET(C#)中使用SQLite数据库 - 白云 - 白云             System.Data.SQLite.SQLiteDataReader reader = cmd.ExecuteReader();

利用SQLite ADO.NET在.NET(C#)中使用SQLite数据库 - 白云 - 白云             StringBuilder sb = new StringBuilder();

利用SQLite ADO.NET在.NET(C#)中使用SQLite数据库 - 白云 - 白云            while (reader.Read())

            {

                 sb.Append("username:").Append(reader.GetString(0)).Append("\n")

                 .Append("password:").Append(reader.GetString(1));

             }

利用SQLite ADO.NET在.NET(C#)中使用SQLite数据库 - 白云 - 白云             MessageBox.Show(sb.ToString());

  评论这张
 
阅读(1810)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017