Asp.Netオンラインバックアップ、圧縮、修復アクセスデータベースサンプルコード

3388 ワード

1.質問の提出
中小規模Webアプリケーションを設計する場合は、Microsoft Accesssをデータベースとして選択できます.データベースの使用中に追加および削除操作を頻繁に行います.実際、Microsoft Accessは割り当てられたが削除されたオブジェクト空間を効果的に解放することはできません.これは、オブジェクトを削除しても、このオブジェクトがデータベースの空間を占めていることを意味し、データベースがますます大きくなることを意味します.不要なスペースを占有するだけでなく、データベースの効率を低下させます.特に、仮想サイトでは特に問題が発生しています.そのためアクセスデータベースを圧縮して痩せることは実用的な意義がある.
Accessデータベース自体には「データベースの圧縮と修復」機能がありますが(ツールèデータベースユーティリティèデータベースの圧縮と修復).しかし、一般の利用者にとっては操作が不便である.通常、Accesssデータベースは仮想ホスト上に配置されており、ダウンロードして「圧縮修復」してから転送するのは時間の無駄なので、オンラインでデータベースを圧縮することが望ましい.
2.オンライン圧縮データベースの実現
2.1.参照の追加
VS.Net環境のソリューションで参照を追加します.方法は、プロジェクト→参照の追加→タブ→ブラウズ(c:/program files/comm files/system/ado/msjro.dll)です.
2.2.Webアプリケーションフォームの作成
Webフォーム(DataBase.aspx)にボタンを配置します.
 
  

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フォーム(DataBase 2.aspx)にボタンを配置します.
 
  

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の圧縮の重要性は無視できない.
圧縮する前にデータベースをバックアップすることをお勧めします.