如何在 C# 中使用 app.config 文件定义连接字符串 [重复]

Posted

技术标签:

【中文标题】如何在 C# 中使用 app.config 文件定义连接字符串 [重复]【英文标题】:how to define a connection string using an app.config file in C# [duplicate] 【发布时间】:2014-01-19 05:47:45 【问题描述】:

目前我在 C# 代码中手动定义连接字符串:

string ConnectionString = "Data Source=C;Initial Catalog=tickets;Integrated Security=True";
SqlConnection Conn = new SqlConnection(ConnectionString);
Conn.Open();

在我的项目中,我有一个 app.config 文件,我可以看到它有一个连接字符串。 它看起来像这样:

<?xml version="1.0"?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
    <add name="ticketNotification.Properties.Settings.ticketsConnectionString"
        connectionString="Data Source=C;Initial Catalog=tickets;Integrated Security=True"
        providerName="System.Data.SqlClient" />
</connectionStrings>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>

如何根据应用程序所在文件夹中的 app.config 文件定义连接字符串?

【问题讨论】:

【参考方案1】:

用这个修改你的应用程序

App.config 文件

<?xml version="1.0"?>
  <configuration>
    <configSections>
    </configSections>
    <connectionStrings>
         <add name="ticketNotification.Properties.Settings.ticketsConnectionString"
              connectionString="Data Source=C;Initial Catalog=tickets;Integrated Security=True" providerName="System.Data.SqlClient" />
    </connectionStrings>
    <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
    </startup>
  </configuration>

这是您的代码隐藏文件。您需要使用System.Configuration 命名空间。 System.Configuration 命名空间包含 ConfigurationManager 类,用于从 app.config/web.config 文件中获取连接字符串。

因为这是一个 Windows 应用程序,所以您在 App.config 文件中定义了连接字符串。要获得在配置文件中定义的连接字符串,您需要在所需的事件处理程序中使用以下代码行

将此命名空间添加到您的代码后面(例如:Form1.cs)文件

using System.Configuration;

在事件处理程序中添加/修改这些代码

  string myConnectionString = ConfigurationManager.ConnectionStrings["ticketNotification.Properties.Settings.ticketsConnectionString"].ConnectionString;

  using(SqlConnection Conn = new SqlConnection(myConnectionString))
  
     Conn.Open();
     //Define the SQL query need to be executed as a string

    //Create your command object

    //Create Dataset,Dataadapter if required

    //add parameters to your command object - if required

   //Execute your command

   //Display success message
 

【讨论】:

【参考方案2】:

要从 app.config 文件中获取连接字符串,您可以使用位于 System.Configuration 命名空间中的类 ConfigurationManager。

要通过名称获取连接字符串并基于它创建连接,可以使用以下代码:

SqlConnection conn = new SqlConnection(
      ConfigurationManager.ConnectionStrings[
         "ticketNotification.Properties.Settings.ticketsConnectionString"]
             .ConnectionString);

您可以在此处阅读更多相关信息(MSDN 文档): http://msdn.microsoft.com/en-us/library/ms254494(v=vs.110).aspx

确保您的项目包含对 System.Configuration 的引用,否则为 ConfigurationManager 在 System.Configuration 命名空间中将不可用。

问候。

【讨论】:

在.net 4.5 中不存在 您是否打开了我的 MSDN 链接,它位于 .NET 4.5 上,并清楚地说明了使用它的示例。你是说MSDN不对?! 因为你在 cmets 中帮助了我。我会接受你的回答。 乐于助人!【参考方案3】:

首先通过右键单击引用并选择添加引用来添加对 System.Configuration 的引用。然后使用

Using System.Configuration

// within the class here

ConfigurationManager.ConnectionStrings["ticketNotification.Properties.Settings.ticketsConnectionString"].ConnectionString;

显然,您需要将连接字符串的名称放在括号中。

【讨论】:

我使用的是 .net 4.5 并且 configurationManager 不存在! 使用 System.Configuration 添加不起作用 据此它确实msdn.microsoft.com/en-us/library/…。您需要添加引用,然后在顶部添加 Using System.Configuration 调用。 @PriceCheaperton 添加对 System.configuration 程序集的引用 你写的属性不存在。等我给你看【参考方案4】:

您需要在项目中添加对 System.Configuration 的引用。然后,您将能够添加 using System.Configuration 语句并使用以下方法按名称获取连接字符串:

string connectionString = ConfigurationManager.ConnectionStrings[<name>].ConnectionString;

【讨论】:

连接被称为“ticketsConnectionString”是我的名字吗?有角度的刹车吗? 是的。它是一个字符串,所以用引号括起来。拆下尖括号。例如:“connectionStringName” 可能您在项目属性中有 .Net 4.5 客户端配置文件,这就是为什么您无法添加对 System.configuration 的引用。如果是这样,请将项目属性设置更改为指向 .Net 4.5(不应出现“客户端”字样)。您可以转到项目设置 --> 应用程序选项卡 --> 查找目标框架(它应该设置为 .Net Framework 4.5 @James:我相信已经整理好了。需要提供参考。

以上是关于如何在 C# 中使用 app.config 文件定义连接字符串 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# 中配置 app.config 文件? [复制]

如何从 C# 读取 VB.NET 项目中的“app.config”文件

单个 app.config 多项目 c#

使用 C# 在 app.config 文件中封装文件名

在 C# 运行时读取、写入和更新 app.config 文件中的连接字符串

C#如何动态修改app.config配置文件?