微软的ACCESS数据库有什么办法在C#代码里恢吗?

沫林 2018-12-25 07:56:51
最近项目里有个模块的操作是从服务器上Down一个文件夹下来,文件夹里有个mdb的数据库,然后在后台里打开这个数据库把数据表里的一些记录删除,现在遇到 了一个问题就是,文件夹Down下来了,但是有问题,就是提示:”Microsoft Office Access检测到此数据库处于不一致状态,并将尝试恢复此数据库。……“如果点确定,手动修复 一下就好了,但是如果不手动修复一下程序就会报错,打不开这个文件,所以想问问有没有什么办法从后台修复数据库啊?测试过直接从服务器上下载下来,也是一样的问题,所以下载代码没问题。
...全文
109 4 点赞 打赏 收藏 举报
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
沫林 2018-12-26
引用 3 楼 以专业开发人员为伍 的回复:
像 Jet 这类至少25年之前才在个人机“流行”了几年的东西,它的功能早就比不上现在的编程概念,没法支持它。

这数据库可以正常连接使用,在Visual Studio软件里对它进行增删改查都没什么问题,就是从服务器上下载下来之后会提示“处于不一致状态”,如果手动恢复一下是可以正常使用的,但是我总不能说把这数据库从网下下载之后还专门手支点进去修复一下吧,所以最好能直接在数据库里修复一下,您说的“DatabaseEngine.Repare(file);“ 好像在visual studio里并没有这个库函数,我是要去下载一个什么插件吗?
  • 打赏
  • 举报
回复
像 Jet 这类至少25年之前才在个人机“流行”了几年的东西,它的功能早就比不上现在的编程概念,没法支持它。
  • 打赏
  • 举报
回复
直接使用(差不多)25年前的 Jet 引擎驱动,以那种类库的函数,当然是可以直接“修复”Jet 数据库文件的。可能是类似
DatabaseEngine.Repare(file);
这类代码。 不过 Jet(也就是 Access)数据库是最不靠谱的数据库,而且只是个文件数据库。并且微软早在20年前就宣布用 Sql Server Compact 来淘汰它了。 如果你正常地使用现在还在关系数据库,哪怕是类似 SQLServerCE 这类桌面数据库,其实也不可能随便复制数据库文件。你得用正规的“备份”功能 MDL 语句来产生备份文件,然后在其它机器上来再来用“还原”语句来还原备份文件。 你见到直接复制正在使用的数据库文件的这种例子,难道不心寒吗?反正遇到那种不靠谱的操作,数据库文件坏了,真“解气”啊!谁让你用 Access 的啊!
  • 打赏
  • 举报
回复
“修复”自然就会丢失一块或者多块数据,也就是说一个或者多个数据表中的n条记录没了,你难道没有注意到?
  • 打赏
  • 举报
回复
相关推荐
发帖
C#
加入

10.6w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2018-12-25 07:56
社区公告

让您成为最强悍的C#开发者