public static void CompactAccessDB(string connectionString, string mdwfilename)
{
object objJRO = Activator.CreateInstance(Type.GetTypeFromProgID("JRO.JetEngine"));
object[] oParams;
oParams = new object[] { connectionString, "Provider=Microsoft.Jet.OLEDB.4.0;Data" + " Source="+Application.StartupPath.Trim()+"\\tempdb.mdb;Jet OLEDB:Engine Type=5"};
objJRO.GetType().InvokeMember("CompactDatabase",
System.Reflection.BindingFlags.InvokeMethod,
null,
objJRO,
oParams);
System.IO.File.Delete(mdwfilename);
System.IO.File.Move(Application.StartupPath.Trim()+"\\tempdb.mdb", mdwfilename); System.Runtime.InteropServices.Marshal.ReleaseComObject(objJRO); objJRO=null;
} 不添加组建,用c#代码压缩和修复.mdb数据库之后,
如果想重新设置数据库中某个表的自动编号起始值,数据库提示类型错误。
但在access里面直接压缩和修复,就可以设置自动编号,而且会自动把编号的下一行设置为
最大值加1。不解阿。。如果不安装access,岂不是不能压缩修复数据库??
{
object objJRO = Activator.CreateInstance(Type.GetTypeFromProgID("JRO.JetEngine"));
object[] oParams;
oParams = new object[] { connectionString, "Provider=Microsoft.Jet.OLEDB.4.0;Data" + " Source="+Application.StartupPath.Trim()+"\\tempdb.mdb;Jet OLEDB:Engine Type=5"};
objJRO.GetType().InvokeMember("CompactDatabase",
System.Reflection.BindingFlags.InvokeMethod,
null,
objJRO,
oParams);
System.IO.File.Delete(mdwfilename);
System.IO.File.Move(Application.StartupPath.Trim()+"\\tempdb.mdb", mdwfilename); System.Runtime.InteropServices.Marshal.ReleaseComObject(objJRO); objJRO=null;
} 不添加组建,用c#代码压缩和修复.mdb数据库之后,
如果想重新设置数据库中某个表的自动编号起始值,数据库提示类型错误。
但在access里面直接压缩和修复,就可以设置自动编号,而且会自动把编号的下一行设置为
最大值加1。不解阿。。如果不安装access,岂不是不能压缩修复数据库??
解决方案 »
- datalist返回值
- WPF中修改部分按钮属性
- 处理 法文字符 碰到的问题 求教!
- c#如何实际一个方法的间隔循环执行?
- 如何让窗体显示在该程序所有窗体的的最前端,而不是桌面上所有窗体的最前端(topmost)?
- 发送邮件错误
- 最近不知道中了什么病毒,win2003 server的任务管理器的按钕变成不可按,怎么办?
- Devpress LayoutControl 隐藏右键菜单
- 怎么实现形如:btnB.Click += btnA.Click这样的表达式
- 请问一下在一个form中可以控制另外一个form中的控件吗??????????????
- 怎样从匹配的字符串 截取到 匹配的字符串
- 请教做一个类似WEB上热点的功能
而且不知道这样压缩后除了无法设置自动编号,
还会不会造成其他操作的问题
数据库-〉Access去找找