PDA开发系列:数据库的选择

     程序的最终运行环境是WINCE6.0,所以可以选择的数据库也相对比较的多,比方说:Access、SQLCE,当然还可以用XML来充当数据库,Access有个弊病,我想大家可能都知道,就是运行的时间一长,数据库文件会越来越大,尽管可以通过压缩的方式来释放掉,但是,这并不是一个好的选择;XML毕竟是个文本,效率不够高;SQLCE我不熟悉,在PDA上使用,好像还需要安装一些东西。我在这个项目中,选择的是SQLite数据库。

    

    SQLite是一个十分小巧的数据库,安装使用都非常的简单。我将一一的介绍:

    创建数据库

    创建我们自己的数据库,我推荐大家用SQLite Developer来创建。打开SQLite Developer,选择“数据库列表”,右键选择“创建数据库”,打开“创建数据库”界面,在“数据库”中选择一个数据库文件存储的位置,在“数据库别名”中,输入数据库名字,这个名字就是我们在程序中用到的名字。然后“确定”,这样,一个SQLite数据库就创建完成了。要创建表,只需要在在左侧的树中,选择刚才创建的数据库,右键选择创建表就可以了。如下:

image

     连接数据库

     在代码中连接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

posted @ 2010-11-08 20:10  HOH  阅读(984)  评论(2编辑  收藏  举报