![](/img/trans.png)
[英]Sql server compact for windows app using visual studio 2010
[英]Access to database file not allowed (SQL Server Compact) in Visual Studio 2010 C#
第一點:我相信這個問題已經在這里回答了,但是並不能解決我的問題。 我的名聲還不到50分,因此我(尚未)對此問題發表評論。
當我的程序安裝在沒有管理員權限的計算機上時,會引發此錯誤
不允許訪問數據庫“ PayeeList.SDF”
在App Manifest中,我以管理員身份添加啟動程序時,不會出現此問題,但是當我啟動程序並要求管理員權限時,這有點煩人,我希望我的程序在沒有管理員權限的情況下運行。
這些是我的文件安裝屬性和下面數據庫的文件屬性。
第二點:
如果我操作正確,請告知我。
關於Stackoverflow的原始問題的解決方案:
確保使用| DataDirectory | 在您的連接字符串中。 這是一個例子
connectionString =“ Data Source = | DataDirectory | MyDB.sdf”
如果我更改此設置,是否可以解決我的問題?
第三點:單擊“確定”后,仍然出現此錯誤。
需要更多信息,請讓我知道。
可能要考慮兩件事:
安裝目錄 :沒有管理員權限,Windows將不允許更改安裝目錄中的任何文件(“程序文件”或“程序文件(x86)”)。
您可以創建自己的目錄並將數據庫存儲在:
用戶目錄\\ AppData \\ Roaming \\
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
當前登錄用戶可以訪問它。
對於所有用戶,您都可以使用:
C:\\ ProgramData
Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)
所有用戶均可訪問它。
ConnectionString:您可以將連接字符串存儲在Global Static Property或變量中,以便可以在當前應用程序中輕松訪問它。 您可以使用Application.StartupPath來獲取當前應用程序目錄。
或者,您可以在App.config文件中修改connectionstring:
您還可以使用代碼設置dataDirectory路徑:
string path =Application.StartupPath; // or Any Path
AppDomain.CurrentDomain.SetData("DataDirectory", path);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.