【问题标题】:Accessing database connection string using app.config in C# winform在 C# winform 中使用 app.config 访问数据库连接字符串
【发布时间】:2012-01-18 13:15:33
【问题描述】:

我似乎无法在我的 c# winforms 应用程序中访问 app.config 数据库连接字符串。

app.config 代码

   <connectionStrings>
      <add name="MyDBConnectionString" providerName="System.Data.SqlClient"
            connectionString="Data Source=localhost;Initial Catalog=MySQLServerDB; Integrated Security=true" />
   </connectionStrings>  

C#代码:

SqlConnection conn = new SqlConnection();
conn.ConnectionString = System.Configuration.ConfigurationSettings.AppSettings["MyDBConnectionString"];    

当我尝试 C# 代码时,我收到一条消息:
警告 1 'System.Configuration.ConfigurationSettings.AppSettings' 已过时:' 此方法已过时,已被 System.Configuration!System.Configuration.ConfigurationManager.AppSettings' 取代

但是,当我尝试使用时:

conn.ConnectionString = System.Configuration!System.Configuration.ConfigurationManager.AppSettings["MyDBConnectionString"];  

我得到一个错误:只有赋值、调用、递增、递减和新对象表达式可以用作语句

【问题讨论】:

  • 当我没有在代码行末尾添加() 时,通常会出现该错误...(这是旧的,但我仍然喜欢评论)

标签: c# sql winforms database-connection app-config


【解决方案1】:

关于这个:

我得到一个错误:只有赋值、调用、递增、递减和新对象表达式可以用作语句

我刚刚声明了一个这样的 var 并解决了问题:

var strConnection = System.Configuration.ConfigurationManager.ConnectionStrings["MyDBConnectionString"].ConnectionString;

【讨论】:

    【解决方案2】:

    请尝试以下代码。这是你所期望的:

    SqlConnection MyConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);       
    

    【讨论】:

      【解决方案3】:

      说明使用该行的答案

      ConfigurationManager.ConnectionStrings["MyDBConnectionString"].ConnectionString;
      

      是正确的。

      如果出现错误提示 ConfigurationManager 不存在,那是因为您的项目没有引用 System.Configuration

      要在 .NET Framework 中执行此操作,请在 Solution Explorer 中,在要使用这行代码的项目中,右键单击 References,选择 Add Reference...,然后选择左侧的Assemblies和下方的Framework。在列表中选择System.Configuration,然后点击Ok

      【讨论】:

        【解决方案4】:
        SqlConnection conn = new SqlConnection();
        conn.ConnectionString = ConfigurationManager
            .ConnectionStrings["MyDBConnectionString"].ConnectionString;
        try
        {
            conn.Open();                
        }
        catch (Exception)
        {
            throw;                    
        }
        

        【讨论】:

          【解决方案5】:
          <?xml version="1.0" encoding="utf-8" ?>
          <configuration>
          
          <appSettings>
          
          <add key="ConnectionString" value="Data Source=MY-PC;Initial Catalog=DB2013;User ID=sa;Password=MYSQL123" />
          
          </appSettings>
          
          </configuration>
          using System.Configuration;
          using System.Data.SqlClient;
          
          namespace OnlineDelete_W2013
          {
          public partial class CommodityEdit : Form
          {
             SqlConnection MyConnection = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
          
              public CommodityEdit()
              {
                  InitializeComponent();
          
              }
          
              private void button1_Click(object sender, EventArgs e)
              {
                  try
                  {
                     MyConnection.Open();
                  }
                  catch (Exception)
                  {
          
                      throw;
                  }
          

          【讨论】:

            【解决方案6】:
            using (SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["SQLConnection"].ToString()))
            {
            ....(your code here) ...
            }
            

            【讨论】:

              【解决方案7】:

              这就是你所需要的:

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

              【讨论】:

                【解决方案8】:

                试试这个

                 ConfigurationManager.ConnectionStrings["MyDbConnectionString"].ConnectionString; 
                

                【讨论】:

                  【解决方案9】:

                  您使用的是 ConnectionStrings 集合,而不是 AppSettings。

                  ConfigurationManager.ConnectionStrings["MyDbConnectionString"].ConnectionString;
                  

                  【讨论】:

                    【解决方案10】:

                    使用ConfigurationManager 代替ConfigurationSettings。它有一个ConnectionStrings 属性,您应该将其用于connectionStrings 部分中的连接字符串:

                    ConfigurationManager.ConnectionStrings["MyDBConnectionString"].ConnectionString;
                    

                    【讨论】:

                      猜你喜欢
                      • 2016-05-11
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 2017-03-07
                      • 1970-01-01
                      • 1970-01-01
                      • 2012-03-22
                      • 2023-04-04
                      相关资源
                      最近更新 更多