求大神帮个忙,有一个相当奇葩问题

rocly 2016-01-19 05:03:42
我最近开发了一个winform项目,用的是access数据库,当我成功以后,有些电脑上就能正常运行,有些电脑就无法读取数据库文件,刚开始我以为是权限问题,后来我把安装程序卸载了,装在其它盘中(非C盘),奇迹发生了,正常运行,但是我又在其它电脑上安装不管是C盘还是其它盘都不行,后来我以为是电脑上没有安装ACCess的问题,但是我安装了ACCESS,也安装了Microsoft Data Access Components ,但是还是不行。
最郁闷的就是有的电脑行,有的电脑不行。求大神指点。
...全文
396 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
puler 2016-01-20
  • 打赏
  • 举报
回复
低版本建ACCESS,最好就是03,估计你是担心版本造成的效率问题,才选高版本ACCESS来创建.mdb结尾的文件 在本机上运行,不是大量操作数据库的话,基本不会去考虑这个问题 如果真要考虑了,那就不能选ACCESS,选择sqlite或者 NoSQL都要靠谱一些
zbdzjx 2016-01-20
  • 打赏
  • 举报
回复
曾经也碰到过一个相当奇葩问题,在Win7下,电脑没安装杀毒软件,当时是用Delphi写的程序,如果资源管理器打开程序所在的文件夹,那么双击这个程序或是双击桌面的这个程序的快捷方式,一点反应都没有,如果没打开资源管理器,或是资源管理器打开的是别的文件夹,双击桌面的这个程序的快捷方式,程序就能运行。
xuzuning 2016-01-20
  • 打赏
  • 举报
回复
你使用 OLEDB.4.0 进行链接的,请检查不能工作的机器上是否支持该驱动 你本该在连接失败时,做出响应的 你这样连接 access,需要 mdb 文件所在目录有一般用户完全访问权(这就是在 C盘 都不能运行的原因)
飞天凤凰601 2016-01-20
  • 打赏
  • 举报
回复
建议你用低版本的access
rocly 2016-01-20
  • 打赏
  • 举报
回复
引用 12 楼 xdashewan 的回复:
[quote=引用 10 楼 rocky_mark 的回复:] 2010
你2010的access在只装了2003的机器不能访问是可能的,别说你程序不能访问,直接用access都打不开的吧,你可以去尝试下。不过如果你要支持大部分机器,那你应该用做成低版本的文件吧[/quote] 没有了,装的是2013
xdashewan 2016-01-20
  • 打赏
  • 举报
回复
引用 10 楼 rocky_mark 的回复:
2010
你2010的access在只装了2003的机器不能访问是可能的,别说你程序不能访问,直接用access都打不开的吧,你可以去尝试下。不过如果你要支持大部分机器,那你应该用做成低版本的文件吧
rocly 2016-01-20
  • 打赏
  • 举报
回复
引用 8 楼 byronqiji 的回复:
电脑分别是什么系统
都是win8的系统
rocly 2016-01-20
  • 打赏
  • 举报
回复
引用 9 楼 xdashewan 的回复:
[quote=引用 7 楼 rocky_mark 的回复:] 你好!我本地是有的是2007和2013的access,装的同样的东西 ,有点电脑上无法运行,有的电脑上正常。这个人我就很郁闷
你的access文件什么版本做出来的[/quote] 2010
xdashewan 2016-01-20
  • 打赏
  • 举报
回复
引用 7 楼 rocky_mark 的回复:
你好!我本地是有的是2007和2013的access,装的同样的东西 ,有点电脑上无法运行,有的电脑上正常。这个人我就很郁闷
你的access文件什么版本做出来的
rocly 2016-01-20
  • 打赏
  • 举报
回复
引用 6 楼 xdashewan 的回复:
[quote=引用 4 楼 rocky_mark 的回复:]
你试过用高版本的olddb访问低版本的access吗,我猜你数据库文件版本不会变化,那么你用高版本组件访问低版本的文件时候会不会出错。还有就是你如何判断目标机器使用何种版本[/quote] 你好!我本地是有的是2007和2013的access,装的同样的东西 ,有点电脑上无法运行,有的电脑上正常。这个人我就很郁闷
byronqiji 2016-01-20
  • 打赏
  • 举报
回复
电脑分别是什么系统
秋的红果实 2016-01-20
  • 打赏
  • 举报
回复
看了你代码,Office版本是2007、2010时,后面是空?这两个版本也已经是 OLEDB.12.0了 还有 你在出问题的机子上,安装VS,调试程序,会跟踪到错误具体信息的
天二天 2016-01-20
  • 打赏
  • 举报
回复
缺少其他东西了。环境问题!
编程有钱人了 2016-01-20
  • 打赏
  • 举报
回复
平台问题,你编译的时候 平台选择X86
rocly 2016-01-19
  • 打赏
  • 举报
回复
引用 2 楼 starfd 的回复:
最靠谱的办法,记日志,通过windows事件查看器看失败时的错误日志(假设你有)
谢谢,我尝试一下,写一个日志试一试
xdashewan 2016-01-19
  • 打赏
  • 举报
回复
引用 4 楼 rocky_mark 的回复:
你试过用高版本的olddb访问低版本的access吗,我猜你数据库文件版本不会变化,那么你用高版本组件访问低版本的文件时候会不会出错。还有就是你如何判断目标机器使用何种版本
rocly 2016-01-19
  • 打赏
  • 举报
回复
引用 3 楼 xdashewan 的回复:
你用什么方式连接的数据库,office一类操作很重要一点就是注意版本,还有别忘了目标机器要按office

xdashewan 2016-01-19
  • 打赏
  • 举报
回复
你用什么方式连接的数据库,office一类操作很重要一点就是注意版本,还有别忘了目标机器要按office
  • 打赏
  • 举报
回复
最靠谱的办法,记日志,通过windows事件查看器看失败时的错误日志(假设你有)
rocly 2016-01-19
  • 打赏
  • 举报
回复
自己给自己顶一个,在线等!求大神支援

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

试试用AI创作助手写篇文章吧