如何使用C#压缩Msaccess数据库

sub*_*ash 2 c# ms-access

是否可以使用c#压缩Msaccess数据库?

Dro*_*ror 5

...
//invoke a CompactDatabase method of a JRO object
//pass Parameters array
objJRO.GetType().InvokeMember("CompactDatabase",
    System.Reflection.BindingFlags.InvokeMethod,
    null,
    objJRO,
    oParams);
...
Run Code Online (Sandbox Code Playgroud)

http://www.codeproject.com/KB/database/mdbcompact_latebind.aspx中查看更多详细信息


Adr*_*der 5

你可以试试这样的

public static void CompactAndRepair(string accessFile, Microsoft.Office.Interop.Access.Application app)
        {
            string tempFile = Path.Combine(Path.GetDirectoryName(accessFile),
                              Path.GetRandomFileName() + Path.GetExtension(accessFile));

            app.CompactRepair(accessFile, tempFile, false);
            app.Visible = false;

            FileInfo temp = new FileInfo(tempFile);
            temp.CopyTo(accessFile, true);
            temp.Delete();
        }
Run Code Online (Sandbox Code Playgroud)

另请参阅使用 Application 对象的 CompactRepair 方法来压缩和修复数据库