C# 连接字符串保存到 AppData 中?
C# Connection string save into AppData?
所以我有一个数据库 (webster.accdb),它将安装在服务器上(例如 \SERVER\WEBSTER)
然而,不同的位置可能有不同的服务器名称(ADMIN1 等)
当程序最初安装时,它会检查 app.config 中的 con 字符串,我将其作为 "DEFAULT" - 字面上的字符串。
该程序检查应用程序配置中的连接字符串,如果它是默认的,那么它会运行一个我制作的小提示,要求用户提供有关服务器名称和其他一些细节的详细信息。
他们点击"connect",它将新构造的连接字符串写入app.config,程序在一系列测试后加载。
现在这在 VS 测试下工作并安装在临时文件夹中的 D: 驱动器上。我的问题是,如果 'properly' 安装到 programfiles 部分,那么我们现在遇到更改文件的访问被拒绝的问题。
所以有人可以就正确的流程向我指出正确的方向吗,因为我知道我做错了:
在Appdata中为用户创建一个XML,里面有con字符串,第一次使用时生成,以后用于constrings?
将con字符串保存为设置,并使用This code更新设置,然后确保我程序中的所有con字符串不再指向配置,而是指向设置??
- 更好,因为我一无所知,这完全不是我应该做的!
用于更新配置的代码:
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
表示正在执行应用程序的用户没有权限,或者由于操作系统内置的安全性,应用程序在受限权限下执行。尝试使用管理员执行应用程序,方法是右键单击它并选择 运行 as.
您可以通过在安装时设置连接字符串来防止出现这种情况。在安装过程中提示用户输入详细信息。
我几乎承认自己不了解配置的 USER 部分的好处。
我已将连接字符串更改为 "STRING" 并放入设置的用户部分。
现在我可以将我的字符串称为
properties.settings.default["ConString"].tostring
然后保存到 User/APPDATA/Local
对于像我这样阅读本文的新手,这意味着程序文件中的原始 app.config 文件保持不变,但从中摘录了与用户部分相关的内容并放入 appdata 中。
一直让我困惑的是在设置中选择 "connection string",它不允许选择作为用户设置。
所以我有一个数据库 (webster.accdb),它将安装在服务器上(例如 \SERVER\WEBSTER) 然而,不同的位置可能有不同的服务器名称(ADMIN1 等)
当程序最初安装时,它会检查 app.config 中的 con 字符串,我将其作为 "DEFAULT" - 字面上的字符串。 该程序检查应用程序配置中的连接字符串,如果它是默认的,那么它会运行一个我制作的小提示,要求用户提供有关服务器名称和其他一些细节的详细信息。
他们点击"connect",它将新构造的连接字符串写入app.config,程序在一系列测试后加载。
现在这在 VS 测试下工作并安装在临时文件夹中的 D: 驱动器上。我的问题是,如果 'properly' 安装到 programfiles 部分,那么我们现在遇到更改文件的访问被拒绝的问题。
所以有人可以就正确的流程向我指出正确的方向吗,因为我知道我做错了:
在Appdata中为用户创建一个XML,里面有con字符串,第一次使用时生成,以后用于constrings?
将con字符串保存为设置,并使用This code更新设置,然后确保我程序中的所有con字符串不再指向配置,而是指向设置??
- 更好,因为我一无所知,这完全不是我应该做的!
用于更新配置的代码:
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
表示正在执行应用程序的用户没有权限,或者由于操作系统内置的安全性,应用程序在受限权限下执行。尝试使用管理员执行应用程序,方法是右键单击它并选择 运行 as.
您可以通过在安装时设置连接字符串来防止出现这种情况。在安装过程中提示用户输入详细信息。
我几乎承认自己不了解配置的 USER 部分的好处。 我已将连接字符串更改为 "STRING" 并放入设置的用户部分。
现在我可以将我的字符串称为
properties.settings.default["ConString"].tostring
然后保存到 User/APPDATA/Local
对于像我这样阅读本文的新手,这意味着程序文件中的原始 app.config 文件保持不变,但从中摘录了与用户部分相关的内容并放入 appdata 中。
一直让我困惑的是在设置中选择 "connection string",它不允许选择作为用户设置。