【问题标题】:Use connectionstring from web.config in source code file在源代码文件中使用来自 web.config 的连接字符串
【发布时间】:2011-03-15 19:32:30
【问题描述】:

我知道这可能是一个非常基本的问题,但也许这就是我在寻找答案时遇到问题的原因。现在我正在通过执行以下操作在我的源文件中创建数据库连接:

SqlConnection con = new SqlConnection("Data Source=...Password=...);
SqlCommand cmd = new SqlCommand(String.Format("SELECT * FROM Table;"), con);
con.Open();
SqlDataReader reader = cmd.ExecuteReader();

但这意味着如果我选择更改数据库,那将是一个很大的痛苦。你们知道如何改用 web.config 文件中的连接字符串吗?

谢谢!

【问题讨论】:

  • 出于好奇,您是否正在关闭/处理您的连接/命令/阅读器?如果您没有使用“使用”关键字,请开始!

标签: c# asp.net


【解决方案1】:

如果您得到“无法将类型'system.configuration.connectionstringsettings'隐式转换为'string'”,请执行以下操作:

string connectionString = ConfigurationManager.ConnectionStrings["MainConnectString"].ConnectionString;

【讨论】:

    【解决方案2】:
    SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionStringNameFromWebConfig"].ConnectionString);
    

    确保您的网站有对 System.Configuration 的引用,否则它将无法正常工作。

    文档位于How to: Read Connection Strings from the Web.config File,附有代码示例

    【讨论】:

    • OLEDB连接怎么样?
    • 您应该可以在 connection strings.com 上找到该信息。
    【解决方案3】:

    你可以试试

    var conString = System.Configuration.
                    ConfigurationManager.ConnectionStrings["connectionStringName"];
    string strConnString = conString.ConnectionString;
    SqlConnection con = new SqlConnection(strConnString);
    

    【讨论】:

    • +1:请注意,OP 可能必须手动将 System.Configuration 引用添加到他的项目中。
    【解决方案4】:

    在您的 app.config(或 web.config)中:

    <configuration>
           <connectionStrings>
               <add name="MainConnectString" connectionString="yourConnectionString" providerName="providerName" />
           </connectionStrings>
    </configuration>
    

    在代码中:

    string connectionString = ConfigurationManager.ConnectionStrings["MainConnectString"];
    

    【讨论】:

      【解决方案5】:

      连同 StackOverflowException 的响应,确保将 using System.Configuration; 添加到您的代码隐藏页面

      【讨论】:

        【解决方案6】:

        您可以使用 EnterpriseLibrary。

        using Microsoft.Practices.EnterpriseLibrary.Data;
        

        然后你创建一个获取连接字符串的方法:

         public static string GetConnectionString()
            {
                Database YourData = DatabaseFactory.CreateDatabase("someconnectionname");
                return YourData .ConnectionString;
            }
        

        在您的 web.config 中,您将拥有以下内容:

         <connectionStrings>   
           <add name="someconnectionname" connectionstring=..... />
         </connectionString>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-06-15
          • 2011-06-24
          • 1970-01-01
          • 1970-01-01
          • 2010-11-05
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多