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

前端之家收集整理的这篇文章主要介绍了在.NET中利用SQLite ADO.NET使用SQLite数据库前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

一、关于sqlite ADO.NET

@H_404_3@System.Data.sqlite

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

@H_404_3@以下是它的特性简介:

@H_404_3@完整的 ADO.NET 2.0 实现

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

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

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

@H_404_3@可移植的数据库文件

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

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

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

@H_404_3@数据库加密

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

@H_404_3@支持使用Visual Studio 2005 设计

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

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

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

@H_404_3@广泛的sql语言支持

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

@H_404_3@用户自定义函数 和 排序

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

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

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

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

@H_404_3@下载地址(最新版本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 @H_404_3@1、通过Add References引用sqlite ADO .NET安装目录的bin目录下的System.Data.sqlite.DLL。

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

@H_404_3@System.Data.sqlite.sqliteConnection.CreateFile(datasource);

@H_404_3@3、连接数据库

@H_404_3@System.Data.sqlite.sqliteConnection conn = new System.Data.sqlite.sqliteConnection(connectionString);

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

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

@H_404_3@ //创建一个数据库文件

@H_404_3@string datasource="h:/test.db";

@H_404_3@ System.Data.sqlite.sqliteConnection.CreateFile(datasource);

@H_404_3@//连接数据库

@H_404_3@ System.Data.sqlite.sqliteConnection conn = new System.Data.sqlite.sqliteConnection();

@H_404_3@ System.Data.sqlite.sqliteConnectionStringBuilder connstr = new System.Data.sqlite.sqliteConnectionStringBuilder();

@H_404_3@ connstr.DataSource = datasource;

@H_404_3@ connstr.Password = "admin";//设置密码,sqlite ADO.NET实现了数据库密码保护

@H_404_3@ conn.ConnectionString = connstr.ToString();

@H_404_3@ conn.Open();

@H_404_3@//创建表

@H_404_3@ System.Data.sqlite.sqliteCommand cmd = new System.Data.sqlite.sqliteCommand();

@H_404_3@string sql = "CREATE TABLE test(username varchar(20),password varchar(20))";

@H_404_3@ cmd.CommandText=sql;

@H_404_3@ cmd.Connection=conn;

@H_404_3@ cmd.ExecuteNonQuery();

@H_404_3@//插入数据

@H_404_3@ sql = "INSERT INTO test VALUES('ekinglong','mypassword')";

@H_404_3@ cmd.CommandText = sql;

@H_404_3@ cmd.ExecuteNonQuery();

@H_404_3@//取出数据

@H_404_3@ sql = "SELECT * FROM test";

@H_404_3@ cmd.CommandText = sql;

@H_404_3@ System.Data.sqlite.sqliteDataReader reader = cmd.ExecuteReader();

@H_404_3@ StringBuilder sb = new StringBuilder();

@H_404_3@while (reader.Read())

@H_404_3@{

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

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

@H_404_3@ }

@H_404_3@ MessageBox.Show(sb.ToString());

猜你在找的Sqlite相关文章