动态创建Access数据库和压缩Access数据库

本文介绍如何使用ADOX和JRO命名空间中的类来创建Access数据库,并提供了具体的代码实现。此外,还详细介绍了如何通过JetEngineClass对象压缩并修复Access数据库的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在创建Access数据库和压缩数据库之前必须填加以下动态连接库msADOX.dll、msjro.dll且它们都是在系统盘的system/ado文件价下,然后必须引用以下命名空间
using ADOX; //该命名空间包含创建ACCESS的类(方法)using JRO; //该命名空间包含压缩ACCESS的类(方法)
创建Access数据库代码如下:
//DBPath是属于数据库的物理路径;
 public static void CreateAccess(string DBPath)
        {
            if (File.Exists(DBPath))//检查数据库是否已存在
            {
                throw new Exception("目标数据库已存在,无法创建");
            }
           
            DBPath = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+DBPath;
            //创建一个CatalogClass对象实例
            ADOX.CatalogClass cat = new ADOX.CatalogClass();
            //使用CatalogClass对象的Create方法创建ACCESS数据库
            cat.Create(DBPath);

        }

压缩数据库代码如下:

public static void Compact()
    {
        string mdbPath =""//添写数据库的物理路径
        string temp2 = "";
        string mdbPath2 = "";
        if (!File.Exists(mdbPath)) //检查数据库是否已存在
        {
            throw new Exception("目标数据库不存在,无法压缩");
        }

        //声明临时数据库的名称
        string temp = DateTime.Now.Year.ToString();
        temp += DateTime.Now.Month.ToString();
        temp += DateTime.Now.Day.ToString();
        temp += DateTime.Now.Hour.ToString();
        temp += DateTime.Now.Minute.ToString();
        temp += DateTime.Now.Second.ToString() + ".bak";
        temp = mdbPath.Substring(0, mdbPath.LastIndexOf("\\") + 1) + temp;
        //定义临时数据库的连接字符串
        temp2 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + temp;
        //定义目标数据库的连接字符串
        mdbPath2 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + mdbPath;
        //创建一个JetEngineClass对象的实例
        JRO.JetEngineClass jt = new JRO.JetEngineClass();
        //使用JetEngineClass对象的CompactDatabase方法压缩修复数据库
        jt.CompactDatabase(mdbPath2, temp2);
        //拷贝临时数据库到目标数据库(覆盖)
        File.Copy(temp,mdbPath, true);
        //最后删除临时数据库
        File.Delete(temp);
    }

转载于:https://www.cnblogs.com/yxyzy/p/3516843.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值