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("数据库创建失败!");
}
}