C#学习九之WPF应用使用SQLite数据库详解

使用SQLite之前,我们先来了解了解SQLite的优点:

◇轻量级
先说它的第一个特色:轻量级。想必SQLite的作者很看重这个特性,连它的Logo都是用的“羽毛”,来显摆它的轻飘飘。
SQLite和C/S模式的数据库软件不同,它是进程内的数据库引擎,因此不存在数据库的客户端和服务器。使用SQLite一般只需要带上它的一个动态 库,就可以享受它的全部功能。而且那个动态库的尺寸也挺小,以版本3.6.11为例,Windows下487KB、Linux下347KB。
◇绿色软件
SQLite的另外一个特点是绿色:它的核心引擎本身不依赖第三方的软件,使用它也不需要“安装”。所以在部署的时候能够省去不少麻烦。
◇单一文件
所谓的“单一文件”,就是数据库中所有的信息(比如表、视图、触发器、等)都包含在一个文件内。这个文件可以copy到其它目录或其它机器上,也照用不误。
◇跨平台/可移植性
如果光支持主流操作系统,那就没啥好吹嘘的了。除了主流操作系统,SQLite还支持了很多冷门的操作系统。我个人比较感兴趣的是它对很多嵌入式系统(比如Android、Windows Mobile、Symbin、Palm、VxWorks等)的支持。
◇内存数据库(in-memory database)
这年头,内存越来越便宜,很多普通PC都开始以GB为单位来衡量内存(服务器就更甭提了)。这时候,SQLite的内存数据库特性就越发显得好用。
SQLite的API不区分当前操作的数据库是在内存还是在文件(对于存储介质是透明的)。所以如果你觉得磁盘I/O有可能成为瓶颈的话,可以考虑切换 为内存方式。切换的时候,操作SQLite的代码基本不用大改,只要在开始时把文件Load到内存,结束时把内存的数据库Dump回文件就OK了。

下面给大家具体说一下使用它的步骤:

1.从SQLite官网下载System.Data.SQlite.dll

  网址:http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki

 这个动态链接库需要Microsoft Visual C++ Runtime Library 这个就需要大家有visual C++的运行库,大家可以在控制面板的程序中查看,如果没有,那么就下载s'teup版,如果已经有的就下载static版。还有要注意的一点是下载的时候记得下载的文件是运行在X64系统还是X32系统的,而在自己程序中是要调整相应架构,不然会出运行的文件格式错误。

2.有了这个就可以在visual stidio中引用这个库。

3.下面是一些操作SQLite的C#语句:

                SQLiteConnection con = new SQLiteConnection("Data Source=record.sqlite;Version=3;");
                con.Open();
                SQLiteCommand cmd = new SQLiteCommand();
                cmd.Connection = con;
                Boolean testTableExists = false;
                cmd.CommandText = "SELECT * FROM sqlite_master WHERE type='table' and name='informations'";
                using (SQLiteDataReader dr = cmd.ExecuteReader())
                {
                    if (dr.Read())
                    {
                        testTableExists = true;
                    }
                }
                if (!testTableExists)
                {
                    string sql= "CREATE TABLE informations (Website nvarchar(30), userName nvarchar(30), password nvarchar(30))";
                    SQLiteCommand command = new SQLiteCommand(sql, con);
                    command.ExecuteNonQuery();
                    MessageBox.Show("OK");
                }
                string sqls = string.Format("INSERT INTO informations(Website, userName, password) VALUES ('{0}','{1}','{2}')",txWebsite.Text,txUsername.Text,txpassword.Text) ;
                SQLiteCommand commands = new SQLiteCommand(sqls, con);
                commands.ExecuteNonQuery();
                MessageBox.Show("OKs");
                con.Close();

  

原文地址:https://www.cnblogs.com/clownice/p/4518639.html