使用app.config在C# Winform中访问数据库连接字符串

22

我似乎无法在我的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"];  

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


通常当我在代码行的结尾处没有放置()时,我会遇到这种错误...(这是老话题了,但我仍然想发表评论 - Momoro
10个回答

34

这就是你所需要的:

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

9

使用ConfigurationManager代替ConfigurationSettings。它有一个ConnectionStrings属性,您应该在connectionStrings部分中使用它来处理连接字符串:

ConfigurationManager.ConnectionStrings["MyDBConnectionString"].ConnectionString;

6

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

ConfigurationManager.ConnectionStrings["MyDbConnectionString"].ConnectionString;

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;
            }
        }
    }
}

4

试一下

 ConfigurationManager.ConnectionStrings["MyDbConnectionString"].ConnectionString; 

4
using (SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["SQLConnection"].ToString()))
{
....(your code here) ...
}

2
答案是使用以下代码行:
ConfigurationManager.ConnectionStrings["MyDBConnectionString"].ConnectionString;

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

在.NET Framework中,要在想要使用此代码行的项目中添加引用。在解决方案资源管理器中,在引用上右键单击,选择添加引用,然后在左侧选择程序集并在下面选择框架。从列表中选择System.Configuration并单击确定


2
SqlConnection conn = new SqlConnection();
conn.ConnectionString = ConfigurationManager
    .ConnectionStrings["MyDBConnectionString"].ConnectionString;
try
{
    conn.Open();                
}
catch (Exception)
{
    throw;                    
}

0
关于这个问题:
我遇到了一个错误:只有赋值、调用、增量、减量和新对象表达式可以用作语句。
我只是声明了一个变量,就解决了这个问题:
var strConnection = System.Configuration.ConfigurationManager.ConnectionStrings["MyDBConnectionString"].ConnectionString;

-1
请尝试以下代码。这正是您所期望的:
SqlConnection MyConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);       

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接