All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
深入理解SQL Server 中的错误处理_[SQL Server教程]
用PHP技术解决网站URL格式过长的问题_[PHP教程]
安装Sql,server,2005中AdventureWork_[SQL,Server教程]
一个关于session使用的讨论_[Asp.Net教程]
XMLHTTP 对象及其方法简介_[XML教程]
利用Asp.net,Ajax异步获取xml文档内容_[Asp.Net教程]
XML 问题- 超越DOM(轻松使用 DOM 的技巧和诀窍)_[XML教程]
使用c#操作IBM,WebSphere,MQ_.net资料_编程技术
delphi获取System目录
采用XHTML和CSS设计可重用可换肤的WEB站点_[Html教程]
Reading number is top 10 pictures
30 beautiful school beauty1
刘亦菲写真集2
看到这个手速,决定过年就让我家猫帮我抢红包了。。
The real super beauty2
From China fortress sora aoi1
何炅哥为中国人的平均工资鸣不平了
So beauty, will let you spray blood7
So beauty, will let you spray blood1
Look at the Spring Festival people crowded into the what kind
Sora aoi possession photo1
Download software ranking
美女写真2
Boxer's Top ten classic battle5
终极变速大师Speeder3.26
Unix video tutorial17
The cock of the Grosvenor LTD handsome
SP4 for SQL2000
Wild things 2
艳兽都市
功夫熊猫2(上集)
Boxer's Top ten classic battle1
delv published in(发表于) 2014/1/6 9:14:15 Edit(编辑)
用C#压缩和修复Access数据库_[Asp.Net教程]

用C#压缩和修复Access数据库_[Asp.Net教程]

用C#压缩和修复Access数据库_[Asp.Net教程]

介绍

  下面这段C# 代码可以用来压缩和修复Access数据库,不管它是一个简单的".mdb"还是一个".mdw"网络共享数据库,这个过程和你在用MS Access应用程序中使用的"工具-数据库实用工具-压缩和修复"时执行的操作完全一样.实例代码使用了"迟绑定"(运行中在内存中建立COM对象),这样就不需要在工程中加入COM引用了,也不需要在PC上安装MS Access应用程序.只需要一个Jet引擎(Jet引擎包含在MDAC安装包中,在Windows NT4以后的版本中,系统已经自带了这个引擎).


  背景


  不知你是否也厌烦了在工程中加入复杂的COM库引用,但我相信这个纯.NET代码将省去额外的交互操作, RCWs和COM引用.基本上,由于系统中安装的Microsoft类库的不同(例如:MS Office Object Library 9,10,11等等),我们也不知道用户PC中安装的Office版本,所以我们要通过ProgID来访问COM对象,而不能用CLSID.例如,当调用"Excel.Application",时,得到的是Excel,而不管系统中安装MS Office的版本,当在代码中加入"MS Excel 10 Object library"引用时,其实只是给应用程序加入了一个非常受限制的功能.所以我们使用System.Reflection和迟绑定.


  1. 实例代码


  只需调用CompactAccessDB函数即可压缩和修复目标数据库.


  2. 参数:


  connectionString – 用来连接到Access数据库. mdwfilename –要压缩的MDB文件的全名(路径+文件名). 由于Jet引擎的限制,执行此方法压缩Access数据库会把结果生成为一个新文件,所以我们要还需要把这个新的Access文件拷贝到目的位置覆盖原来未压缩文件.


  当调用此方法时请确认被压缩数据库无打开的连接.


  代码如下:


///


/// MBD compact method (c) 2004 Alexander Youmashev
/// !!IMPORTANT!!
/// !make sure there's no open connections
/// to your db before calling this method!
/// !!IMPORTANT!!
///

/// connection string to your db
/// FULL name
/// of an MDB file you want to compress.
public static void CompactAccessDB(string connectionString, string mdwfilename)
{
object[] oParams;
//create an inctance of a Jet Replication Object
object objJRO =
Activator.CreateInstance(Type.GetTypeFromProgID("JRO.JetEngine"));
//filling Parameters array
//cnahge "Jet OLEDB:Engine Type=5" to an appropriate value
// or leave it as is if you db is JET4X format (access 2000,2002)
//(yes, jetengine5 is for JET4X, no misprint here)
oParams = new object[] {
connectionString,
"Provider=Microsoft.Jet.OLEDB.4.0;Data" +
" Source=C:\\tempdb.mdb;Jet OLEDB:Engine Type=5"};
//invoke a CompactDatabase method of a JRO object
//pass Parameters array
objJRO.GetType().InvokeMember("CompactDatabase",
System.Reflection.BindingFlags.InvokeMethod,
null,
objJRO,
oParams);
//database is compacted now
//to a new file C:\\tempdb.mdw
//let's copy it over an old one and delete it
System.IO.File.Delete(mdwfilename);
System.IO.File.Move("C:\\tempdb.mdb", mdwfilename);
//clean up (just in case)
System.Runtime.InteropServices.Marshal.ReleaseComObject(objJRO);
objJRO=null;
}


  注意事项


  Jet Engine 5 用于 JET4X 数据库. 使用时要留意下表:



Jet OLEDB:Engine Type


Jet x.x Format MDB Files


1


JET10


2


JET11


3


JET2X


4


JET3X


5


JET4X



来源:网络







添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.