在.net中使用Sqlite数据库

大家都知道用.net开发的程序一般都是使用Sql server数据库。但是在一些小项目上,却不适合。一来是没有必要为小项目而装sql server,二来是sql server的license太贵,不适合小项目使用。

一般的小项目我推荐使用MySql,Access和Sqlite。Access在Xp以前的系统中可以直接使用,MySql在windows下需要一个30M的安装包或是一个10多M的本地文件包。以前我一直用Access,但是近来我发现Sqlite这个数据库,感觉很好。向大家介绍一下。

其实Sqlite在嵌入式程序中已经很有名气了,而且是完全免费的。官方网站为http://www.sqlite.org/

Sqlite与Access一样,都是单文件的。就是说没有数据库引擎,数据库文件在磁盘上就是一个文件。而且Sqlite支持索引,视图和触发器。这些都比Access强。

好东西还需要好的管理工具来搭配,我推荐Sqlite Administrator或是SqliteSpy。大家可以在网上找他们的最新版本。下面给大家两个图,第一个是sqlite Administrator,第二个是SqliteSpy的。

Sqlite Administrator

SqliteSpy

上面两个工具都可以完成Sqlite的一般工作。比如建库,建表,查询等。

如果大家想用.net连接,操作Sqlite,还必须去下载Sqlite的类库System.Data.SQLite.dll,可以在微软的官方网站上找到。然后在程序中引用这个DLL就可以。它和ADO.net连接Sql Server一样,也有Connect,Command,Adapter等控件,具体的操作就不说了。

在使用上,我发现一个问题,就是保存在Sqlite数据库中换行回车(\r\n),在Sqlite中都被转成了\n,也就是说,从Sqlite中读出来的String必须用Replace("\n", "\r\n")转一下,要不所有的字符都是连一起的,没有换行回车了。

在最近的一个项目中用了Sqlite,感觉不错,所以就拿来和大家分享了,有什么不对的地方还请大家指教。