程序的最终运行环境是WINCE6.0,所以可以选择的数据库也相对比较的多,比方说:Access、SQLCE,当然还可以用XML来充当数据库,Access有个弊病,我想大家可能都知道,就是运行的时间一长,数据库文件会越来越大,尽管可以通过压缩的方式来释放掉,但是,这并不是一个好的选择;XML毕竟是个文本,效率不够高;SQLCE我不熟悉,在PDA上使用,好像还需要安装一些东西。我在这个项目中,选择的是SQLite数据库。
SQLite是一个十分小巧的数据库,安装使用都非常的简单。我将一一的介绍:
创建数据库
创建我们自己的数据库,我推荐大家用SQLite Developer来创建。打开SQLite Developer,选择“数据库列表”,右键选择“创建数据库”,打开“创建数据库”界面,在“数据库”中选择一个数据库文件存储的位置,在“数据库别名”中,输入数据库名字,这个名字就是我们在程序中用到的名字。然后“确定”,这样,一个SQLite数据库就创建完成了。要创建表,只需要在在左侧的树中,选择刚才创建的数据库,右键选择创建表就可以了。如下:
连接数据库
在代码中连接SQLite数据库很简单,我们只需要添加对System.Data.SQLite.dll的引用,然后把SQLite.Interop.065.DLL放在运行目录下就可以了,然后就可以像操作我们属性的SQL Server一样去操作SQLite数据库。但是,在连接字符串的书写上,我们需要注意。我们需要给出绝对路径。如下面的写法:Data Source=\Userdata\ZFB.db3;通常,我们的数据库文件都是放在主程序所在文件夹下面,这就要求我们能够得到程序的启动路径,在wince6.0中,微软没有直接为我们提供获取程序启动路径的方法,这就要求我们自己去实现,我是这样获取的:
private static string _startPath = string.Empty; /// <summary> /// 获取应用程序启动的路径 /// </summary> public static string StartPath { get { if (string.IsNullOrEmpty(_startPath)) { _startPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase); } return _startPath; } }
在这里,还有一点需要注意,我们再操作SQLite数据库的时候,如果程序没有找到SQLite数据库的时候,程序不会报“连接数据库失败”,他会在对应的文件夹下面自动创建一个数据库文件,当我们进一步去访问表的时候,就会报类似于“没有找到表”的错误,所以,在编程过程中,如果遇到“没有找到表”的错误,就应该去检查一下,路径下面是否有SQLite数据库文件。
相关下载:SQLite.rar