C#Windows窗体应用程序 - 在安装期间保存配置/使用外部配置

时间:2014-07-15 19:11:58

标签: c# mysql xml windows desktop-application

在开始之前,我已经做了很多研究和谷歌搜索。我想我找不到完美的答案,因为我可能是个菜鸟。)

但是,我使用Windows C#表单应用程序创建了一个POS软件,它的工作非常好。现在,这个应用程序使用MySQL作为数据库服务器。

我一直在对app.config文件中的数据库服务器凭据进行硬编码。

app.config文件的代码:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <connectionStrings>
    <add name="cString" connectionString="Server=localhost;Database=adittoenterprise;port=3306;Uid=root;Pwd=root123" providerName="MySql.Data.MySqlClient"/>
  </connectionStrings>
</configuration>

现在我正在尝试为其他用户创建一个包。当然,我需要提出用户可以提供的解决方案

主机 用户名 密码

在安装过程中,应用程序应将其存储在某个地方(这是我缺乏的知识)并在运行时使用它。

非常欢迎任何替代解决方案。

提前感谢大家与我合作并帮助我:)

2 个答案:

答案 0 :(得分:2)

您的安装程序需要修改app.config文件。有许多不同类型的安装程序可供使用,一些功能更全面的程序包可以在安装期间修改XML文件,例如app.config。

也可以在运行时修改连接字符串(尽管它是应用程序范围设置,而不是用户范围设置,这可能不是一个好主意),只要在任何数据库对象尝试使用之前执行此操作它:

Properties.Settings.Default["cString"] = "new connection string";

...因此您可能会使用空白连接字符串分发app.config,并提示用户在第一次运行应用程序时提供这些值。但是,您必须将新值保存到用户范围设置中,以便Save()工作:

Properties.Settings.Default.CustomConnectionString = "new connection string";
Properties.Settings.Default.Save();

答案 1 :(得分:0)

(请注意,我是一名计算机科学专业的学生并且还在学习)

编辑链接对你的情况没用,因为它们只能用于IIS,但我仍然不会将明文密码保存到文件中,如建议的其他答案。

保存密码尤其是纯文本应该被认为是不好的做法。通常,如果应用程序启动,则需要用户进行身份验证才能访问数据库。当然你可以存储密码,但要正确地做到这一点你应该看看http://msdn.microsoft.com/en-us/library/hh8x3tas.aspxhttp://msdn.microsoft.com/en-us/library/89211k9b%28v=vs.80%29.aspx

然后,如果您的应用程序第一次启动,您的应用程序可以创建/编辑配置文件并存储值。请注意,您的应用程序无法在运行时更改它自己的app.config,因此为您的数据库连接创建web.config是有意义的。