码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2015-05-14 18:00:19      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:

在 .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()) 技术分享            

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

标签:

原文地址:http://www.cnblogs.com/experience/p/4503700.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!