簡體   English   中英

在Visual Studio 2010 C#中不允許訪問數據庫文件(SQL Server Compact)

[英]Access to database file not allowed (SQL Server Compact) in Visual Studio 2010 C#

第一點:我相信這個問題已經在這里回答了,但是並不能解決我的問題。 我的名聲還不到50分,因此我(尚未)對此問題發表評論。

當我的程序安裝在沒有管理員權限的計算機上時,會引發此錯誤

不允許訪問數據庫“ PayeeList.SDF”

在App Manifest中,我以管理員身份添加啟動程序時,不會出現此問題,但是當我啟動程序並要求管理員權限時,這有點煩人,我希望我的程序在沒有管理員權限的情況下運行。

這些是我的文件安裝屬性和下面數據庫的文件屬性。

Visual Studio安裝程序部署的文件安裝屬性。

性質

第二點:

如果我操作正確,請告知我。

關於Stackoverflow的原始問題的解決方案:

確保使用| DataDirectory | 在您的連接字符串中。 這是一個例子

connectionString =“ Data Source = | DataDirectory | MyDB.sdf”

如果我更改此設置,是否可以解決我的問題?

在此處輸入圖片說明

當我單擊確定時,它給我這個錯誤。

第三點:單擊“確定”后,仍然出現此錯誤。

需要更多信息,請讓我知道。

可能要考慮兩件事:

  1. 安裝目錄 :沒有管理員權限,Windows將不允許更改安裝目錄中的任何文件(“程序文件”或“程序文件(x86)”)。

    您可以創建自己的目錄並將數據庫存儲在:

    用戶目錄\\ AppData \\ Roaming \\

    Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)

    當前登錄用戶可以訪問它。

    對於所有用戶,您都可以使用:

    C:\\ ProgramData

    Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)

    所有用戶均可訪問它。

  2. 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM