【发布时间】:2018-02-16 05:35:42
【问题描述】:
所以我有一个数据库 (webster.accdb),它将安装在服务器上(例如 \SERVER\WEBSTER) 但是不同的位置可能有不同的服务器名称(ADMIN1 等)
当程序最初安装时,它会检查 app.config 中的 con 字符串,我将其设置为“DEFAULT”——字面意思是字符串。 该程序检查应用程序配置中的连接字符串,如果它是默认的,那么它会运行一个小提示,询问用户有关服务器名称和其他一些细节的详细信息。
他们点击“连接”,它将新构建的连接字符串写入app.config,并在一系列测试后加载程序。
现在这适用于 VS 测试并安装在 D: 驱动器的临时文件夹中。我的问题是,如果“正确”安装到程序文件部分,那么我们现在会遇到访问被拒绝更改文件的问题。
所以有人可以为我指出正确的流程,因为我知道我做错了:
在Appdata中为用户创建一个XML,里面有constrings,这个是第一次使用时生成的,以后会用于constrings吗?
-
将con字符串保存为Settings,并使用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);
【问题讨论】:
-
在不同的注释上,我只是愚蠢地注意到我没有在这里使用参数.. 我对所有 SQL 部分都有。这仍然容易受到 SQL 注入的影响吗?我不会这么想,因为它甚至无法连接到数据库,但我确信它的最佳做法是用不同的方式来做?
标签: c# connection-string app-config