您的位置:首页 > 数据库

C#访问ACCESS数据库被其他程序独占方式打开无法访问

2012-03-15 10:51 555 查看
 
Asp.net项目用Sqlserver数据库正常,移植到Access就出现问题。其中:“Microsoft Jet 数据库引擎打不开文件'C:\***\*.mdb'。它已经被别的用户以独占方式打开,或没有查看数据的权限...”这个错误我搞了半天才搞定。
首先,我是NTFS分区(听说这个格式对权限安全性要高些),其次是XP系统,所以右键单击文件夹属性没有安全选项,需要先打开文件系统 -- 工具-->文件夹选项-->查看-->去掉“使用简单文件共享(推荐)”前的勾。右键打开存放数据库文件夹,属性-->安全  里添加用户Everyone,赋权限“完全控制”(数据库放C盘,还是失败,移到D盘-->成功)。然后我的项目可以读取到数据库的信息了。当对其修改时,问题又来了,无法修改。原来数据库本身没有赋予访问用户修改的权限,于是同样右键数据库,安全里添加Everyone,赋予完全控制权限,OK,我的程序终于跑起来了。
Access数据库不同于Sqlserver,用惯了Sqlserver后还真不习惯它。Access中delete语句必须加from,在Sqlserver是可以不要的,还有就是遇到错误信息:语法错误 (操作符丢失) 在查询表达式 '*****'中,就可能是字段名冲突,最好的解决办法就是所有字段名加上'[]'。Access没有存储过程,所拥有的“查询”一次也只能执行一条sql语句,这个不太方便...
Access的select top语句有时会失效,这主要是因为查询里包含了order by语句,如:
select top 3 from users order by createtime desc
当createtime含有相同值时,Access的select top就会失效。解决办法就是将主键id也包含在order by里面,因为主键不会有重复值,既修改为:
select top 3 from users order by createtime,id desc
 

................................
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐