如何编写外部连接字符串配置文件并使我的c#应用程序识别并读取它?

时间:2011-10-31 15:17:43

标签: c# .net database winforms

我当前的c#windows表单应用程序使用以下代码连接到数据库以检索信息,并将其存储在Setting.cs

public static String connectionString ="Data Source=####; Initial Catalog=###; User ID=####; Password='####'";

我写了一个外部的Connection.config文件,内容是:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <connectionStrings>
    <add name="Connection" providerName="System.Data.providername" 
         connectionString="Data Source=####; Initial Catalog=###; User ID=###;                      Password='####!';" />
  </connectionStrings>
</configuration>

上面的代码写得正确吗?因为我只是在线复制和粘贴并编辑连接字符串部分,因为我不知道“添加名称”和providerName部分是做什么的。

我想问的是我应该在表单中编写代码以从外部配置文件中读取连接字符串,以便我可以删除settings.cs文件中的连接字符串。

谢谢。

不要介意###,因为它只是由我代替来代表信息。

4 个答案:

答案 0 :(得分:4)

您可以使用配置源来拆分配置文件。示例App / web.config:

<connectionStrings configSource="myExternalConfigSource.xml" />

外部配置:

<connectionStrings>          
  <add name="Connection" providerName="System.Data.providername" 
     connectionString="Data Source=####; Initial Catalog=###; User ID=###; />
</connectionStrings>  

更多信息:http://www.nikhilk.net/Entry.aspx?id=158

如果您使用此方法,则可以正常引用您的配置,并且仍然可以将您的配置拆分为单独的文件。

答案 1 :(得分:1)

我们使用:

<configuration>
    <appSettings>
        <add key="connection.string" value="Initial Catalog=XXX;server=localhost;User=YYY;Password=ZZZ;" />
    </appSettings>
</configuration>

然后只是:

ConfigurationManager.AppSettings["connection.string"];

答案 2 :(得分:1)

在关闭配置标记上方的web.config文件中添加以下内容。

   <connectionStrings>
      <add connectionString="Data Source=Servernamegoeshere;Initial Catalog=databasenamehere;Persist Security Info=True;User ID=***;Password=***" name="nameyouwanttogivethisconnection" providerName="System.Data.SqlClient" />
   </connectionStrings>
</configuration>

要在主窗体的页面加载上引用连接,请使用:

public void Page_Load(object sender, EventArgs e)
{
        string connectionString = ConfigurationManager.ConnectionStrings["nameyouwanttogivethisconnection"].ConnectionString;
        SqlConnection SqlConnection = new SqlConnection(connectionString);
        SqlCommand SqlCommand = new SqlCommand("update table etc etc....",SqlConnection);
        SqlConnection.Open();
        SqlCommand.ExecuteNonQuery(); //This line is for updates and inserts, use SqlCommand.ExecuteReader(CommandBehavior.CloseConnection); for select statments
        SqlConnection.Close();
}

确保将这些引用添加到您正在使用此代码的页面顶部:

using System.Data;
using System.Configuration;
using System.Data.SqlClient;

然后,您可以使用该连接创建一个Sqlcommand来对您的数据库运行。

答案 3 :(得分:0)

您也可以使用ApplicationSettings,忘记手动在配置文件中写入信息(这将自动完成)

  1. 右键单击解决方案资源管理器中的项目,然后选择“属性”。
  2. 转到“设置”标签。
  3. 单击链接以创建设置文件。 (它将被称为Settings.settings)
  4. 对于Name,键入要用于连接字符串的名称。 (即ConnectionString)
  5. 对于“类型”,请选择“连接字符串”
  6. 对于Scope,选择Application
  7. For Value粘贴您的连接字符串。
  8. 如果您想使用它,只需输入

    即可
    Application.Settings.Default.ConnectionString
    

    SqlConnection connection = new SqlConnection(Application.Settings.Default.ConnectionString);