1.问题的提出

在设计中小型Web应用程序时,可以选择Microsoft Accesss为数据库。在数据库的使用过程中经常性进行增加和删除操作。事实上,Microsoft Access并不能有效地释放已分配的但被删除的对象空间,这将意味着即使你删除了一个对象,而这个对象仍然占据着数据库的空间,使得数据库越来越大。不 但占用不必要的空间,而且降低了数据库的效率。特别在虚拟站点上的问题尤为突出。因此对Access数据库进行压缩瘦身很有实际意义。
虽然Access数据库自身具有“压缩和修复数据库”功能(工具è数据库实用工具è压缩和修复数据库)。但对一般使用者来说操作不方便。通常Accesss数据库放置在虚拟主机上,需要把它下载下来“压缩修复”完后再传上去很浪费时间,所以最好能在线对数据库进行压缩。

2.在线压缩数据库的实现

2.1.添加引用

在VS.Net环境的解决方案下添加引用。方法如下:项目→添加引用→选项卡→浏览(c:"program files"comm files"System"ado"msjro.dll)。

2.2.创建Web应用程序窗体

在Web窗体(DataBase.aspx)上放置一个按钮:
<asp:Button ID="CompactBtn" runat="server" Text=" 压缩数据库 " OnClick="CompactBtn_Click" />
再添加一个Label控件:
<asp:Label ID="MsgLabel" runat="server"></asp:Label>

2.3.代码状态下,添加引用

using System;
using System.IO;
using JRO;

2.4.添加代码

//压缩数据库
protected void CompactBtn_Click(object sender, EventArgs e)
{
 string DbPath1, DbPath2, DbConn1, DbConn2;

DbPath1 = Server.MapPath("../App_Data/DataBase.mdb");//原数据库路径
 DbPath2 = Server.MapPath("../App_Data/DataBase2.mdb");//压缩后的数据库路径
 DbConn1 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + DbPath1;
 DbConn2 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + DbPath2;

try
 {
  JetEngine DatabaseEngin = new JetEngine();
  DatabaseEngin.CompactDatabase(DbConn1, DbConn2);//压缩

File.Copy(DbPath2, DbPath1, true);//将压缩后的数据库覆盖原数据库
  File.Delete(DbPath2);//删除压缩后的数据库

MsgLabel.Text = "数据库压缩成功!";
 }
 catch
 {
  MsgLabel.Text = "数据库压缩失败,请重试!";
 }
}

3.备份数据库

3.1.创建Web应用程序窗体

在Web窗体(DataBase2.aspx)上放置一个按钮:
<asp:Button ID="BackUpBtn" runat="server" Text=" 备份数据库 " OnClick="BackUpBtn_Click" />
再添加一个Label控件:
<asp:Label ID="MsgLabel" runat="server"></asp:Label>

3.2.代码状态下,添加引用

using System;
using System.IO;

3.3.添加代码

//备份数据库
protected void BackUpBtn_Click(object sender, EventArgs e)
{
 string DbPath1, DbPath2, DbName4DbPath2;

DbName4DbPath2 = DateTime.Now.ToString().Replace(":",".");
 DbPath1 = Server.MapPath("../App_Data/DataBase.mdb");
 DbPath2 = Server.MapPath("../App_Data/" + DbName4DbPath2 + ".mdb");

try
 {
  File.Copy(DbPath1, DbPath2, true);

MsgLabel.Text = "数据库备份成功到" + DbName4DbPath2 + ".mdb!";
 }
 catch
 {
  MsgLabel.Text = "数据库备份失败,请重试!";
  MsgLabel.CssClass = "redColor";
 }
}

4.总结

经过压缩使Microsoft Access真正释放占据的多余空间,数据库尽量减小,保证它最有效地运行。因此,在设计的过程中,不可忽视对Microsoft Access进行压缩的重要性。
建议压缩前先对数据库进行备份。

转载于:https://www.cnblogs.com/leeolevis/archive/2009/02/03/1383178.html

Asp.net在线备份、压缩和修复Access数据库相关推荐

  1. C#压缩和修复Access数据库

    介绍     下面这段C# 代码可以用来压缩和修复Access数据库,不管它是一个简单的".mdb"ACCESS数据库还是一个".mdw"网络共享数据库,这个过 ...

  2. 如何修复ACCESS数据库

    ACCESS数据库,使用时间超过2-3个月 或网站每日访问人数超过100个独立IP,都可能造成损坏,损坏后,用户的网站就可能会很慢,也可能导致服务器CPU一直100%,一般可以采用以下方法修复,如修复 ...

  3. access数据库应用计算机二级,全国计算机等级二级ACCESS数据库程序设计

    全国计算机等级二级ACCESS数据库程序设计 语音 编辑 锁定 讨论 上传视频 <二级ACCESS数据库程序设计>课程覆盖计算机等级考试二级ACCESS数据库程序设计科目的所有笔试.机试考 ...

  4. 【原创】ASP.NET C# 对SQL/ACCESS 数据库的备份和还原函数

    //注意:本文为博主原创,转载请注明出处,谢谢合作! //使用前须先引用SQLDMO.dll ADOX.dll JRO.dll 等组件,无须独立安装 //如:C:\Program Files\Comm ...

  5. ACCESS数据库的压缩,备份,还原,下载,删除的实现

    以文本方式查看主题 -  企胜MIS开发论坛|ASP.NET|UML| CSS|Access|My SQL|网络营销|JAVA|J2EE|Ajax  (http://www.fleake.com/in ...

  6. 有关Access的压缩和修复数据库功能

    用过Access数据库的朋友一定知道有个"压缩和修复数据库"的功能. 为什么要 "压缩和修复数据库" 首先是当然是压缩,减少文件大小.因为Access是一种文件 ...

  7. 转:关于ASP操作Access数据库时出现死锁.ldb的解决方法

    Asp操作Access数据库时出现死锁.ldb导致网站访问缓慢的问题描述 最近asp网站出现数据库错误,在ftp登陆后发现原来的后缀MDB文件多了一个后缀LDB文件,是自动被锁,在一天某个时间段内打不 ...

  8. Asp 操作Access数据库时出现死锁.ldb的解决方法

    问题: 最近经常用的asp网站"搬家"到一个昂贵的服务器时候,出现这个问题,访问后台时候,出现数据库错误的字样,在ftp登陆后发现原来的后缀MDB文件多了一个后缀LDB文件,百度搜 ...

  9. SQLite学习手册(在线备份)

    一.常用备份: 下面的方法是比较简单且常用的SQLite数据库备份方式,见如下步骤:     1). 使用SQLite API或Shell工具在源数据库文件上加共享锁.     2). 使用Shell ...

最新文章

  1. SpringBoot JPA不调用save方法,调用set方法就自动修改了数据库值
  2. android webservices 返回多行多列数据,NoahWeb实现表格多行多列
  3. ARIMA模型的建模和预测
  4. C++设计模式-命令模式
  5. iconpath 微信小程序_微信小程序开发(全局配置文件)
  6. 【原】oracle external table
  7. 一些实用但不为人知的Unix命令
  8. 3d打印机c语言程序下载,C语言下载
  9. 无线通信设备安装工程概预算编制_起重设备安装资质承接多大工程
  10. windows graphics - DXGI 介绍(DirectX Graphics Infrastructure)
  11. sdk前置服务器 设备和商户信息不匹配,豌豆荚融合SDK接入常见问题
  12. Java相关技术文档汇总
  13. Time, Delays, and Deferred Work LDD3 学习笔记 + jiffies.h 分析
  14. MAC自带词典添加词典文件
  15. 开发8年的老Android才知道,赶紧收藏备战金三银四!
  16. QQ表情包,动态的那种
  17. 美国计算机科学专业申请条件,美国CS计算机科学专业申请条件有哪些?
  18. 原生js实现动态数据表格
  19. C++实现double factorial双阶乘的算法(附完整源码)
  20. Java中yyyy-MM-dd HH:mm:ss.SSSSSS日期格式精确到毫秒

热门文章

  1. leetcode - 279. 完全平方数
  2. 简单的网络爬虫实现(Jsoup使用)
  3. python 3.5安装pywin32
  4. 多项式的链式存储方案
  5. oracle重建服务器,Oracle重建控制文件的实例教程
  6. docker 安装azkaban_azkaban安装
  7. python读取音频文件_python 读取wav 音频文件的两种方式
  8. 高德地图时间和实际差多少_高德打车,谁用谁上当,谁用谁吃亏
  9. python图层合并_Ps算法Python实现:图层混合模式-色相
  10. 音乐上传网站_国外最受欢迎的15个BT下载网站