将ConnectionString移动到App.config

时间:2014-11-10 12:34:25

标签: c# sql-server wpf app-config

在我的WPF应用程序中,我想连接到数据库。

如果我使用以下代码,它可以正常工作:

string connectionString = @"Data Source=SERVER\ENGINE;Initial Catalog=MyDb;User ID=sa;Password=123456;";
SqlConnection connection = new SqlConnection(connectionString);
connection.Open();

现在我将ConnectionString移到我的App.config,并希望从那里使用以下代码:

string connectionString = ConfigurationManager.ConnectionStrings[0].ConnectionString;
SqlConnection connection = new SqlConnection(connectionString);
connection.Open();

现在我得到SqlExecption

  

类型'System.Data.SqlClient.SqlException'的未处理异常   发生在System.Data.dll

中      

发生与网络相关或特定于实例的错误   建立与SQL Server的连接。找不到服务器或   无法访问。验证实例名称是否正确   SQL Server配置为允许远程连接。 (提供者:SQL   网络接口,错误:26 - 查找服务器/实例时出错   指定)

App.config看起来像:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
  <connectionStrings >
    <add connectionString="Data Source=SERVER\ENGINE;Initial Catalog=MyDb;User ID=sa;Password=123456;" name="connection"/>
  </connectionStrings>
</configuration>

为什么这不起作用?

2 个答案:

答案 0 :(得分:2)

试试这个: - (首选名字而不是索引)

ConfigurationManager.ConnectionStrings["connection"].ConnectionString;

您可以阅读为什么我们应该Here

答案 1 :(得分:1)

您始终可以通过名称参数获取连接字符串:

ConfigurationManager.ConnectionStrings["connection"].ConnectionString;

来源:http://msdn.microsoft.com/pt-br/library/ms178411(v=vs.100).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-1