有程序正在訪問數據庫,或者數據庫文件本身存在錯誤,就會出現這樣的情況
永豐網站建設公司創(chuàng)新互聯,永豐網站設計制作,有大型網站制作公司豐富經驗。已為永豐數千家提供企業(yè)網站建設服務。企業(yè)網站搭建\成都外貿網站建設要多少錢,請找那個售后服務好的永豐做網站的公司定做!
檢查是否有數據庫訪問,如果有關閉程序
如果還是不行就強行關閉數據庫服務,然后用單機模式檢查修復數據庫錯誤,如果這樣都不行說明數據庫文件錯誤比較嚴重了,建議恢復備份
分離和脫機都可以使數據庫不能再被使用, 但是分離后需要附加才能使用, 而脫機后只需聯機就可以用了
像帶有離線功能的這種設計,你需要有一個本地數據庫,同時有一個內建的隊列。也就是說,當你執(zhí)行本地操作的時候,你操作的是本地的數據庫,但同時還有一個線程在不停地讀取你的本地數據庫上傳至服務端。如果網絡不通的情況下,就只是暫存在本地數據庫中,而不啟動線程讀取隊列。當網絡連通了,你就需要去執(zhí)行上傳了。
需要注意的是,你執(zhí)行的本地操作最好別有出現并發(fā)操作的可能,比如說某個維護項,A用戶執(zhí)行了離線修改,B用戶執(zhí)行了離線刪除,那聽誰的?所以如果只是離線操作的情況,應當注意限制某些功能。
不知道你所說的關閉是指什么,SQL
Server里嚴格的講是沒有關閉數據庫這種說法的。在確定數據庫沒有被使用的情況下可以將其狀態(tài)設置為離線,這樣就沒人能夠訪問離線的數據庫,應該就是你所說的關閉了。
另外,master是不能“關閉”的。如果你只是打個比方的話就無所謂了。
將數據庫設置為離線的命令是:
alter
database
數據庫名
set
offline
姑且用master來做例子
alter
database
master
set
offline
離線以后,想設置為在線對應的命令是
alter
database
數據庫名
set
online
1、將SQLServer Compact 3.5 安裝目錄下的如下文件復制到將要打包發(fā)布的項目中
sqlceca35.dll
sqlcecompact35.dll
sqlceer35EN.dll
sqlceme35.dll
sqlceoledb35.dll
sqlceqp35.dll
sqlcese35.dll
2、將這些文件的“復制到輸出目錄”屬性設置為“如果較新則復制”
3、將要打包發(fā)布的項目中引用System.Data.SqlServerCe
4、將System.Data.SqlServerCe的“復制本地”屬性設置為“True”
5、在將要打包發(fā)布的項目的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
然后再脫機。