十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
有程序正在访问数据库,或者数据库文件本身存在错误,就会出现这样的情况
永丰网站建设公司创新互联,永丰网站设计制作,有大型网站制作公司丰富经验。已为永丰数千家提供企业网站建设服务。企业网站搭建\成都外贸网站建设要多少钱,请找那个售后服务好的永丰做网站的公司定做!
检查是否有数据库访问,如果有关闭程序
如果还是不行就强行关闭数据库服务,然后用单机模式检查修复数据库错误,如果这样都不行说明数据库文件错误比较严重了,建议恢复备份
分离和脱机都可以使数据库不能再被使用, 但是分离后需要附加才能使用, 而脱机后只需联机就可以用了
像带有离线功能的这种设计,你需要有一个本地数据库,同时有一个内建的队列。也就是说,当你执行本地操作的时候,你操作的是本地的数据库,但同时还有一个线程在不停地读取你的本地数据库上传至服务端。如果网络不通的情况下,就只是暂存在本地数据库中,而不启动线程读取队列。当网络连通了,你就需要去执行上传了。
需要注意的是,你执行的本地操作最好别有出现并发操作的可能,比如说某个维护项,A用户执行了离线修改,B用户执行了离线删除,那听谁的?所以如果只是离线操作的情况,应当注意限制某些功能。
不知道你所说的关闭是指什么,SQL
Server里严格的讲是没有关闭数据库这种说法的。在确定数据库没有被使用的情况下可以将其状态设置为离线,这样就没人能够访问离线的数据库,应该就是你所说的关闭了。
另外,master是不能“关闭”的。如果你只是打个比方的话就无所谓了。
将数据库设置为离线的命令是:
alter
database
数据库名
set
offline
姑且用master来做例子
alter
database
master
set
offline
离线以后,想设置为在线对应的命令是
alter
database
数据库名
set
online
1、将SQLServer Compact 3.5 安装目录下的如下文件复制到将要打包发布的项目中
sqlceca35.dll
sqlcecompact35.dll
sqlceer35EN.dll
sqlceme35.dll
sqlceoledb35.dll
sqlceqp35.dll
sqlcese35.dll
2、将这些文件的“复制到输出目录”属性设置为“如果较新则复制”
3、将要打包发布的项目中引用System.Data.SqlServerCe
4、将System.Data.SqlServerCe的“复制本地”属性设置为“True”
5、在将要打包发布的项目的App.Config(如果没有则增加)中天下如下内容:
name="Microsoft SQL Server Compact Data Provider"
invariant="System.Data.SqlServerCe.3.5"
description=".NET Framework Data Provider for Microsoft SQL Server Compact"
type="System.Data.SqlServerCe.SqlCeProviderFactory,
System.Data.SqlServerCe,
Version=3.5.0.0,
Culture=neutral,
PublicKeyToken=89845dcd8080cc91"
/
6、打包部署即可
只要没有连接,脱机操作和库的体积没有关系,长时间不能终止说明有连接在使用数据库,脱机操作要等连接关闭才能进行。
可以尝试: ALTER DATABASE 数据库名 SET OFFLINE WITH ROLLBACK AFTER 0
然后再脱机。