Access数据库虽然在某些方面上比不上专业级的SQL等数据库,但在一些小型应用以及其便携方便的特点,使我们不得不研究一下。无须安装Office软件,只需系统中安装有MDAC 2.7或是2.8数据库组件,就可以方便的使用该数据库,当然了,MDAC组件微软都帮我们准备好了,只要是Windows NT, XP, 2003操作系统,自带,所以我们之要利用该组件既可。本次研究,主要是为了C#的代码自动生成的一个辅助代码,解决Access库的创建,表的创建,以及Access字段的数据类型与Jet引擎之间的关系。
    数据库的创建很Easy,主要使用的是ADOX这个COM组件来完成,而其它表的创建等,则使用Jet OLEDB SQL来进行创建。在项目中引入ADODB(Microsoft ActiveX Data Objects 2.8 Library),及(ADOX)Microsoft ADO Ext. 2.8 for DDL and Security两个COM组件。下面的示例代码进行了简单的封装:
        /// <summary>
        /// 创建Access数据库
        /// </summary>
        /// <param name="path">文件和文件路径</param>
        /// <returns>真为创建成功,假为创建失败或是文件已存在</returns>
        public bool CreateAccessDatabase(string path)
        {
            //如果文件存在反回假
            if (File.Exists(path))
                return false;
            try
            {
                //如果目录不存在,则创建目录
                string dirName = Path.GetDirectoryName(path);
                if (!Directory.Exists(dirName))
                {
                    Directory.CreateDirectory(dirName);
                }
                //创建Catalog目录类
                ADOX.CatalogClass catalog = new ADOX.CatalogClass();
                _connectionStr = getConnectionString(path);
                //根据联结字符串使用Jet数据库引擎创建数据库
                catalog.Create(_connectionStr);
                //得到当前活动连接对象接口
                ADODB.Connection adoconn = catalog.ActiveConnection as ADODB.Connection;
                //关闭活动连接
                adoconn.Close();
                //释放类资源
                catalog = null;
                
                return true;
            }
            catch (Exception)
            {
                throw new Exception("数据库创建失败!");
            }
        }