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

本文关键字:访问 数据库连接 字符串 config app winform 中的 使用 | 更新日期: 2023-09-27 18:17:40

我似乎无法访问我的 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!System.Configuration.ConfigurationManager.AppSettings'

但是,当我尝试使用:

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

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

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

这就是您所需要的:

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

使用 ConfigurationManager 而不是 ConfigurationSettings 。它有一个 ConnectionStrings 属性,应用于 connectionStrings 部分中的连接字符串:

ConfigurationManager.ConnectionStrings["MyDBConnectionString"].ConnectionString;

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

ConfigurationManager.ConnectionStrings["MyDbConnectionString"].ConnectionString;
<?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;
            }
        }
    }
}

试试这个

 ConfigurationManager.ConnectionStrings["MyDbConnectionString"].ConnectionString; 
using (SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["SQLConnection"].ToString()))
{
....(your code here) ...
}
SqlConnection conn = new SqlConnection();
conn.ConnectionString = ConfigurationManager
    .ConnectionStrings["MyDBConnectionString"].ConnectionString;
try
{
    conn.Open();                
}
catch (Exception)
{
    throw;                    
}

说明使用该行的答案

ConfigurationManager.ConnectionStrings["MyDBConnectionString"].ConnectionString;

是正确的。

如果出现错误,指出 ConfigurationManager 不存在,这是因为您的项目尚未引用 System.Configuration

若要在 .NET Framework 中,在">解决方案资源管理器"中,在要使用此代码行的项目中执行此操作,请在"引用"中右键单击,选择">添加引用...",然后选择左侧的">程序集"和其下的"框架"。在列表中选择">系统配置">,然后单击"确定"。

关于这个:

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

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

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

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

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