1. MDB 파일
먼저 참조추가에서 COM 탭에 있는 Microsoft Jet and Replication Objects 2.6 Library를 추가한다.
JRO.JetEngineClass jro = new JRO.JetEngineClass();
jro.CompactDatabase("Provider=Microsoft.jet.OLEDB.4.0;Data Source=압축할MDB", "Provider=Microsoft.jet.OLEDB.4.0;Data Source=압축후MDB");
출처: https://jasmintime.com/57 [Jasmin Time:티스토리]
2. ACCDB 파일
'Microsoft Office 16.0 Access Database Engine Object Library' 항목을 추가한다
using System.IO;
using Microsoft.Office.Interop.Access.Dao;
#region CompactAccessDB
/// <summary>
/// CompactDatabase 를 수행합니다.
/// </summary>
public static void CompactAccessDB(string dbFilePath)
{
try
{
if (!File.Exists(dbFilePath))
{
return;
}
DBEngine dbEngine = new DBEngine();
string directroy = Path.GetDirectoryName(dbFilePath);
string filename = Path.GetFileNameWithoutExtension(dbFilePath);
string extension = Path.GetExtension(dbFilePath);
string compactFilePath = Path.Combine(directroy, filename + "_temp" + extension);
string password = "1234";
// 오류로 인해 temp 파일이 제거 되지 않은 경우 대비
if (File.Exists(compactFilePath))
{
File.Delete(compactFilePath);
}
dbEngine.CompactDatabase(dbFilePath, compactFilePath, false, false, "MS Access;PWD=" + password);
File.Delete(dbFilePath);
File.Move(compactFilePath, dbFilePath);
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
'C#.Net' 카테고리의 다른 글
c# CroupBox 내 선택 된 RadioButton Text 찾기 및 선택 (0) | 2024.11.20 |
---|---|
[C#] 가비지 컬렉터(Garbage Collector) (4) | 2024.08.30 |
Thread.Sleep과 Task.Delay 설명 (출처: 디씨인사이드 갤러리) (0) | 2024.07.16 |
DataGridview 데이터 추가 시 깜빡임 해결 (0) | 2024.07.03 |
c# ADOX.Create 시 클래스가 등록되지 않았습니다 예외 해결 (0) | 2024.04.17 |