【问题标题】:How to write connection string in web.config file and read from it?如何在 web.config 文件中写入连接字符串并从中读取?
【发布时间】:2020-03-10 22:30:34
【问题描述】:

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

<connectionStrings>
  <add name="Dbconnection" connectionString="Server=localhost; 
       Database=OnlineShopping ; Integrated Security=True"/>
</connectionStrings >

然后像这样读取它:

string strcon = 
    ConfigurationManager.ConnectionStrings["Dbconnection"].ConnectionString;
SqlConnection DbConnection = new SqlConnection(strcon);

运行程序时,由于空引用而出现错误。但是当我使用这段代码时:

SqlConnection DbConnection = new SqlConnection();
DbConnection.ConnectionString = 
    "Server=localhost; Database=OnlineShopping ; Integrated Security=True";

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

【问题讨论】:

    标签: c# asp.net sqlconnection


    【解决方案1】:

    添加引用添加System.Configuration:-

    System.Configuration.ConfigurationManager.
        ConnectionStrings["connectionStringName"].ConnectionString;
    

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

    <connectionStrings>
      <add name="Dbconnection" 
           connectionString="Server=localhost; Database=OnlineShopping;
           Integrated Security=True"; providerName="System.Data.SqlClient" />
    </connectionStrings>
    

    【讨论】:

    • 在哪里添加对连接字符串的引用?
    【解决方案2】:

    Web.config:

    <connectionStrings>
        <add name="ConnStringDb" connectionString="Data Source=localhost;
             Initial Catalog=DatabaseName; Integrated Security=True;" 
             providerName="System.Data.SqlClient" />
    </connectionStrings>
    

    c#代码:

    using System.Configuration;
    using System.Data
    
    SqlConnection _connection = new SqlConnection(
              ConfigurationManager.ConnectionStrings["ConnStringDb"].ToString());
    
    try
    {
        if(_connection.State==ConnectionState.Closed)
            _connection.Open();
    }
    catch { }
    

    【讨论】:

      【解决方案3】:

      您确定您的配置文件 (web.config) 位于正确的位置并且连接字符串确实在(生成的)文件中吗?如果您发布文件,则可能会复制 web.release.config 的内容。

      在我看来,连接字符串的配置和访问权限都没有问题。我总是会添加一个提供者名称

      <connectionStrings>
        <add name="Dbconnection" 
             connectionString="Server=localhost; Database=OnlineShopping; 
             Integrated Security=True" providerName="System.Data.SqlClient" />
      </connectionStrings>
      

      【讨论】:

        【解决方案4】:

        试试这个 在应用程序中打开 web.config 文件并像这样在 connectionStrings 部分添加示例数据库连接

        <connectionStrings>
        <add name="yourconnectinstringName" connectionString="Data Source= DatabaseServerName; Integrated Security=true;Initial Catalog= YourDatabaseName; uid=YourUserName; Password=yourpassword; " providerName="System.Data.SqlClient"/>
        </connectionStrings >
        

        【讨论】:

          【解决方案5】:

          试试这个

          var configuration = WebConfigurationManager.OpenWebConfiguration("~");
          var section = (ConnectionStringsSection)configuration.GetSection("connectionStrings");
          section.ConnectionStrings["MyConnectionString"].ConnectionString = "Data Source=...";
          configuration.Save();
          

          【讨论】:

            【解决方案6】:

            尝试使用WebConfigurationManager 而不是ConfigurationManager

            【讨论】:

            • 您不需要 WebConfigurationManager 来读取连接字符串。
            【解决方案7】:

            在应用程序中打开 web.config 文件后,在 connectionStrings 部分添加示例数据库连接,如下所示:

            <connectionStrings>  
                <add name="yourconnectinstringName" connectionString="Data Source= DatabaseServerName; Integrated Security=true;Initial Catalog= YourDatabaseName; uid=YourUserName; Password=yourpassword; " providerName="System.Data.SqlClient" />   
            </connectionStrings>  
            

            在 web.config 文件中声明连接字符串:

             <add name="dbconnection" connectionString="Data Source=Soumalya;Integrated Security=true;Initial Catalog=MySampleDB" providerName="System.Data.SqlClient" />   
            

            访问数据库服务器不需要用户名和密码。 现在,编写代码以从我们的代码隐藏文件中的 web.config 文件中获取连接字符串。在代码隐藏文件中添加以下命名空间。

            using System.Configuration;
            

            此命名空间用于从 web.config 文件中获取配置部分的详细信息。

            using System;  
            using System.Data.SqlClient;  
            using System.Configuration;  
            public partial class _Default: System.Web.UI.Page {  
                protected void Page_Load(object sender, EventArgs e) {  
                    //Get connection string from web.config file  
                    string strcon = ConfigurationManager.ConnectionStrings["dbconnection"].ConnectionString;  
                    //create new sqlconnection and connection to database by using connection string from web.config file  
                    SqlConnection con = new SqlConnection(strcon);  
                    con.Open();  
                }  
            }  
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2011-09-02
              • 2015-03-20
              • 1970-01-01
              • 1970-01-01
              • 2014-11-24
              • 2021-02-24
              • 1970-01-01
              • 2012-12-31
              相关资源
              最近更新 更多