在C#应用程序开发中,将数据库连接字符串等配置信息存放在XML文件中是常见做法,既便于配置修改,也能提升代码的可维护性。下面介绍两种从XML文件中读取连接字符串的常用方式。

一、从标准App.config/Web.config中读取
如果是.NET Framework项目,通常会在App.config或者Web.config的connectionStrings节点下存放连接字符串,这类文件属于标准的XML配置文件,可以直接使用.NET内置的ConfigurationManager类读取。
1. 配置文件结构示例
首先在配置文件的configuration节点下添加connectionStrings节点,内容如下:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="DefaultConn"
connectionString="Server=127.0.0.1;Database=TestDB;Uid=root;Pwd=123456;"
providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
2. 读取代码实现
需要先添加对System.Configuration程序集的引用,然后使用以下代码读取:
using System;
using System.Configuration;
namespace XmlConnStringDemo
{
class Program
{
static void Main(string[] args)
{
// 读取名为DefaultConn的连接字符串
string connStr = ConfigurationManager.ConnectionStrings["DefaultConn"]?.ConnectionString;
if (!string.IsNullOrEmpty(connStr))
{
Console.WriteLine("读取到的连接字符串:" + connStr);
}
else
{
Console.WriteLine("未找到对应的连接字符串");
}
}
}
}
二、从自定义XML文件中读取
如果连接字符串存放在自定义的XML文件中,就需要手动解析XML内容,常用的是XmlDocument类来加载并读取节点信息。
1. 自定义XML文件示例
假设自定义XML文件名为db_config.xml,内容如下:
<?xml version="1.0" encoding="utf-8" ?>
<DbConfig>
<ConnectionString>
<Name>TestConn</Name>
<Value>Server=192.168.0.1;Database=DemoDB;Uid=admin;Pwd=admin123;</Value>
</ConnectionString>
</DbConfig>
2. 读取代码实现
使用XmlDocument加载文件后,通过节点路径获取对应的连接字符串内容:
using System;
using System.Xml;
namespace CustomXmlDemo
{
class Program
{
static void Main(string[] args)
{
// 加载自定义XML文件,注意文件路径需要根据实际情况调整
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("db_config.xml");
// 获取ConnectionString节点下的Value节点内容
XmlNode connNode = xmlDoc.SelectSingleNode("/DbConfig/ConnectionString/Value");
if (connNode != null)
{
string connStr = connNode.InnerText;
Console.WriteLine("自定义XML中读取到的连接字符串:" + connStr);
}
else
{
Console.WriteLine("自定义XML中未找到连接字符串节点");
}
}
}
}
注意事项
- 使用
ConfigurationManager读取时,要确保项目已经引用System.Configuration程序集,否则会编译报错。 - 读取自定义XML文件时,需要确认文件的路径是否正确,如果是相对路径,要注意程序运行时的当前工作目录。
- 连接字符串属于敏感信息,实际项目中建议对XML文件中的连接字符串进行加密处理,避免明文存储带来安全风险。
C#XML连接字符串ConfigurationManager修改时间:2026-06-23 12:54:16