簡體   English   中英

C#連接字符串保存到AppData?

[英]C# Connection string save into AppData?

所以我有一個數據庫(webster.accdb),它將被安裝在服務器上(例如\\ SERVER \\ WEBSTER)。但是,不同的位置可能具有不同的服務器名稱(ADMIN1等)

最初安裝該程序時,它將檢查app.config中的con字符串,即我輸入為“ DEFAULT”的字符串。 該程序檢查應用程序配置中的連接字符串,如果它是DEFAULT,則它會運行一個小提示,詢問用戶有關服務器名稱和其他一些細節的詳細信息。

他們單擊“連接”,它將新構建的連接字符串寫入app.config,並在一系列測試后加載程序。

現在,它可以在VS測試下工作,並安裝在臨時文件夾中的D:驅動器上。 我的問題是,如果“正確地”安裝到programfiles部分,那么我們現在遇到拒絕訪問更改文件的問題。

因此有人可以指出我在正確過程方面的正確方向,因為我知道我做錯了:

  1. 在Appdata中為用戶創建一個XML,該XML具有con字符串,並且該XML是在首次使用時生成的,並且從那時起用於該constring?

  2. 將con字符串另存為Settings,並使用此代碼更新設置,然后確保程序中的所有con字符串不再指向配置,而是指向設置?

    1. 更好的東西是因為我一無所知,而這完全不是我應該怎么做的!

用於更新配置的代碼:

Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
        config.ConnectionStrings.ConnectionStrings["LOTSConnectionString"].ConnectionString = "Data Source=" + txtpcname.Text + ";Initial Catalog=" + cmbdispense.SelectedItem + ";Integrated Security=False;User ID=webbit;Password=ill923r6MG";
        config.Save(ConfigurationSaveMode.Modified, true);

Access Denied表示正在執行該應用程序的用戶沒有權限,或者由於操作系統的內置安全性,該應用程序正在受限權限下執行。 通過右鍵單擊並選擇運行方式,嘗試使用Administrator執行應用程序。

您可以通過在安裝時設置連接字符串來防止這種情況。 在安裝過程中提示用戶輸入詳細信息。

我非常坦白地說,我不了解配置的USER部分的好處。 我已將連接字符串更改為“ STRING”,並放入“設置”的“用戶”部分。

現在我可以將我的字符串稱為

properties.settings.default["ConString"].tostring

然后將其保存到用戶/ APPDATA /本地

對於像我這樣的菜鳥來說,這意味着Programfiles中的原始app.config文件保持不變,但摘錄了與用戶部分有關的摘錄,並將其放入appdata中。

一直以來困擾我的是在設置中選擇“連接字符串”,這不允許選擇為USER設置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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