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


    在创建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);
        }

  • 相关阅读:
    从零搭建Spring Boot脚手架(6):整合Redis作为缓存
    MyBatis初级实战之三:springboot集成druid
    table布局
    【JVM之内存与垃圾回收篇】直接内存
    【JVM之内存与垃圾回收篇】对象实例化内存布局与访问定位
    【JUnit测试】总结
    【JVM之内存与垃圾回收篇】方法区
    【JVM之内存与垃圾回收篇】堆
    【JVM之内存与垃圾回收篇】本地方法栈
    【JVM之内存与垃圾回收篇】本地方法接口
  • 原文地址:https://www.cnblogs.com/yxyzy/p/3516843.html
Copyright © 2020-2023  润新知