如何从webconfig中的connectionstring中检索databaseName和serverName?

Tal*_*2me 14 asp.net

如何从Web Config获取连接字符串?我想在我的主ASP.net页面(C#)上显示数据库和服务器名称.

我的web.config中的连接字符串如下所示:

<add name="Application_ConnectionString" connectionString="Data Source=ServerName;Initial Catalog=DatabaseName;Persist Security Info=True;Connection Timeout =60;Integrated Security=SSPI" providerName="System.Data.SqlClient"/>
Run Code Online (Sandbox Code Playgroud)

Joh*_*sch 21

还有SqlConnectionStringBuilder班级:

var connectionString = 
  new System.Data.SqlClient.SqlConnectionStringBuilder("Data Source=ServerName;Initial Catalog=DatabaseName;Persist Security Info=True;Connection Timeout =60;Integrated Security=SSPI"); 

Console.WriteLine(connectionString.DataSource);
Console.WriteLine(connectionString.InitialCatalog);
// ...
Run Code Online (Sandbox Code Playgroud)

回复评论:

要直接从配置获取连接字符串,请使用:

foreach (ConnectionStringSettings c in System.Web.Configuration.WebConfigurationManager.ConnectionStrings)
{
    var connectionString = new SqlConnectionStringBuilder(c.ConnectionString)
    //connectionString.DataSource; // server name
    //connectionString.InitialCatalog; // database name
}
Run Code Online (Sandbox Code Playgroud)

请注意,这将包含machine.config中的连接字符串(例如data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true).如果您不希望看到可以在代码中过滤它,或者<clear />在连接字符串之前将元素添加到web.config中.


小智 5

这对我有用:

        var conn = ConfigurationManager.ConnectionStrings["yourconnectionstringname"].ConnectionString;
        var csb = new SqlConnectionStringBuilder(conn);
        textboxServer.Text = csb.DataSource;
        textboxUserName.Text = csb.UserID;
        textboxPassword.Text = csb.Password;
        textboxInitialCatalog.Text = csb.InitialCatalog;
Run Code Online (Sandbox Code Playgroud)

希望能帮到你


Abe*_*ler 1

SqlConnection有一个Database属性,因此您可以在创建连接后从中获取数据库名称。

您可以使用SqlConnection 类的DataSource属性获取实例名称。实例与服务器名称相似但不完全相同。