2011-05-26 44 views
2

我正在使用本地sql數據庫處理Visual C#項目。當我安裝.msi文件並運行程序,然後嘗試更新數據庫中的某些內容時,出現錯誤「無法更新數據庫C:\ setup \ DBNC.mdf,因爲數據庫是隻讀的」我真的很難時間推測這一個,任何建議?Visual Studio 2010 C#sql數據庫只讀錯誤

回答

0

您是否檢查過.mdf文件的屬性以確保它不是隻讀的?聽起來可能是這個問題。

5

我要去掉我的魔法8球一分鐘。讓我們來看...

OP是否從本地服務器上運行的.sql腳本創建數據庫?
回覆朦朧,再試一次

OP是否在安裝包中包含.mdb?
您可能需要它

好的。因此,用戶通過安裝包將數據庫複製到該特定目錄...

運行安裝包時OP是否升級到管理員?
展望良好

好吧,OP是創建目錄,並在複製文件中有安裝,所有在管理員帳戶的支持。

OP是否將此文件附加到Sql Server的本地實例?
標誌指向是

是否將數據庫配置爲只讀在Sql Server中?
回覆朦朧,再試

已OP運行ALTER DATABASE DBNC SET READ_ONLY?
不要指望它

好吧,那已經OP更新C:\setup\ NTFS的安全性和MDB給讀運行SQL服務器(網絡服務或其他一些帳戶的帳戶)/寫訪問?
我的消息來源說沒有

賓果!

您以admin身份創建該目錄並將其複製到那裏。運行Sql Server的帳戶沒有修改文件的權限,所以你會得到這個錯誤。

您不應將數據庫部署爲文件。你應該創建一個.sql文件來創建數據庫以及其中的所有表/關係/ etc。這樣你總是可以確保數據庫可以被Sql Server實例訪問。另外,它比mdb更容易版本化SQL腳本文件。

+0

謝謝請問這會讓場景和幫助很多!林仍然是相當小白與這可以告訴我如何從我的數據庫中創建一個.sql文件,我沒有看到任何地方在視覺工作室導出它。 – user771886 2011-05-31 14:47:56

+0

@ user771886:在服務器資源管理器中,右鍵單擊數據庫並選擇「發佈到提供者」。你可以從那裏「發佈」到一個sql腳本。 – Will 2011-05-31 14:49:35

+0

這工作,也愚蠢的問題,但我怎麼然後讓我的應用程序使用新的.sql文件,而不是舊的.mdf之一,導致它在程序運行時尋找一個DBNC.mdf文件 – user771886 2011-05-31 15:36:01

1

我希望這可以幫助那裏的人。我遇到了一個類似的問題,但通過將我的數據庫文件部署到App Data目錄並修改我的連接字符串以指向它來解決此問題。這神奇地解決了這個問題。