我使用此论坛中的代码创建了一个将数据集对象导出到 MDB 文件的方法:http://www.xtremedotnettalk.com/showthread.php?t=93599
我的数据集只包含一个表,5 列,大约 100k 行。生成的 MDB 文件的大小为 50 MB。不知道是不是太大了?
如果您有更好的方法将数据集导出到 MDB 文件以减小文件大小,请告诉我。
50MB * 1024KB/MB * 1024byte/KB = 52428800 字节。
52428800/100000 行/5 列/行 = 每列 ~105 字节。
根据您定义列的方式,这可能并不出格...特别是当我们还没有考虑任何索引、页面大小和填充等时。
我找到了一种以编程方式修复和压缩MDB文件的方法:
private static void CompactAndRepairMDB(string FilePath)
{
string FileName = Path.GetFileNameWithoutExtension(FilePath);
string FileName_Temp = Path.GetFileNameWithoutExtension(FilePath) + "_CompactAndRepair";
string FilePath_Temp = FilePath.Replace(FileName, FileName_Temp);
JRO.JetEngine oJetEngine = new JRO.JetEngine();
string SourceConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + FilePath + ";" +
"Jet OLEDB:Engine Type=5;";
string DestConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + FilePath_Temp +";" +
"Jet OLEDB:Engine Type=5;";
//Compact the database (makes a new copy)
oJetEngine.CompactDatabase(SourceConn, DestConn);
//Overrite the old new
File.Copy(FilePath_Temp, FilePath, true);
//Delete Temp File
File.Delete(FilePath_Temp);
}