如何在web.config文件中编写连接字符串并从中读取?

use*_*779 12 c# asp.net sqlconnection

我正在尝试将连接字符串写入Web.config,如下所示:

<connectionStrings>
  <add name="Dbconnection" connectionString="Server=localhost; 
       Database=OnlineShopping ; Integrated Security=True"/>
</connectionStrings >
Run Code Online (Sandbox Code Playgroud)

并从中读取如下:

string strcon = 
    ConfigurationManager.ConnectionStrings["Dbconnection"].ConnectionString;
SqlConnection DbConnection = new SqlConnection(strcon);
Run Code Online (Sandbox Code Playgroud)

当运行程序时,由于空引用,我得到一个错误.但是当我使用这段代码时:

SqlConnection DbConnection = new SqlConnection();
DbConnection.ConnectionString = 
    "Server=localhost; Database=OnlineShopping ; Integrated Security=True";
Run Code Online (Sandbox Code Playgroud)

我没有收到任何错误,程序正常工作!问题是什么?

Rah*_*thi 11

添加引用添加System.Configuration: -

System.Configuration.ConfigurationManager.
    ConnectionStrings["connectionStringName"].ConnectionString;
Run Code Online (Sandbox Code Playgroud)

您还可以更改WebConfig文件以包含提供程序名称: -

<connectionStrings>
  <add name="Dbconnection" 
       connectionString="Server=localhost; Database=OnlineShopping;
       Integrated Security=True"; providerName="System.Data.SqlClient" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)

  • 在哪里添加对连接字符串的引用? (2认同)

Sum*_*jee 9

Web.config文件:

<connectionStrings>
    <add name="ConnStringDb" connectionString="Data Source=localhost;
         Initial Catalog=DatabaseName; Integrated Security=True;" 
         providerName="System.Data.SqlClient" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)

c#代码:

using System.Configuration;
using System.Data

SqlConnection _connection = new SqlConnection(
          ConfigurationManager.ConnectionStrings["ConnStringDb"].ToString());

try
{
    if(_connection.State==ConnectionState.Closed)
        _connection.Open();
}
catch { }
Run Code Online (Sandbox Code Playgroud)


Pro*_*FOX 2

尝试使用WebConfigurationManager而不是ConfigurationManager

  • 您不需要 WebConfigurationManager 来读取连接字符串。 (4认同)