数据库配置文件(config.xml)

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="ConnectionString" value="server=192.168.100.116;database=BDCY;uid=sa;pwd=123456;" />
<add key="ConnString" value="server=(local);database=gxjd;uid=sa;pwd=" />
<add key="BakData" value="W1" />
<add key="dogServer" value="192.168.100.116">
</add>
<add key="dogport" value="">
</add>
</appSettings>
</configuration>

引用命名空间(using System.Xml;)

读取XML中的数据库连接字符串

   /// <summary>
/// 读取XML中的数据数据库连接字符串
/// </summary>
/// <param name="value"></param>
/// <param name="key"></param>
/// <returns></returns>
private string ConfigGetValues(string key)
{
string strRes = string.Empty;
XmlDocument xDoc = new XmlDocument();
xDoc.Load("Config.xml");
XmlNode xNode;
XmlElement xElement;
xNode = xDoc.SelectSingleNode("//appSettings");
xElement = (XmlElement)xNode.SelectSingleNode("add[@key='"+key+"']");
if (xElement != null)
{
strRes = xElement.GetAttribute("value");
}
return strRes;
}

写入XML中的数据库连接字符串

  /// <summary>
/// 写入XML中的数据
/// </summary>
/// <param name="key">键</param>
/// <param name="value">值</param>
/// <returns></returns>
private void ConfigSetValues(string key,string value)
{
XmlDocument xDoc = new XmlDocument();
xDoc.Load("Config.xml");
XmlNode xNode;
XmlElement xElement;
XmlElement xElement1;
xNode = xDoc.SelectSingleNode("//appSettings");
xElement = (XmlElement)xNode.SelectSingleNode("//add[@key='"+key+"']");
if (xElement != null)
{
xElement.SetAttribute("value", value); //"value"固定的AppStrings结点属性
}
else
{
xElement1 = xDoc.CreateElement("add");
xElement1.SetAttribute("key", key); //"key"固定的AppStrings结点属性
xElement1.SetAttribute("value", value); //"value"固定的AppStrings结点属性
xNode.AppendChild(xElement1);
}
xDoc.Save("Config.xml");
}

完整代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Xml; namespace Config
{
public partial class XMLCheck : Form
{
public XMLCheck()
{
InitializeComponent();
} //读取数据
private void btnRead_Click(object sender, EventArgs e)
{
GetConfigSub("ConnectionString");
} //写入数据
private void btnWrite_Click(object sender, EventArgs e)
{
SetConfigSub();
MessageBox.Show("修改成功!");
} /// <summary>
/// 读取XML中的数据数据库连接字符串
/// </summary>
/// <param name="value"></param>
/// <param name="key"></param>
/// <returns></returns>
private string ConfigGetValues(string key)
{
string strRes = string.Empty;
XmlDocument xDoc = new XmlDocument();
xDoc.Load("Config.xml");
XmlNode xNode;
XmlElement xElement;
xNode = xDoc.SelectSingleNode("//appSettings");
xElement = (XmlElement)xNode.SelectSingleNode("add[@key='"+key+"']");
if (xElement != null)
{
strRes = xElement.GetAttribute("value");
}
return strRes;
} /// <summary>
/// 获取数据库连接的子信息
/// </summary>
private void GetConfigSub(string key)
{
string strRes = ConfigGetValues(key);
string[] arr = strRes.Split(';');
txbServerName.Text =arr[].Substring(arr[].IndexOf('=')+);
txbDBName.Text = arr[].Substring(arr[].IndexOf('=') + );
txbAccountName.Text = arr[].Substring(arr[].IndexOf('=') + );
txbDBPwd.Text = arr[].Substring(arr[].IndexOf('=') + );
txbDogAddress.Text = ConfigGetValues("dogServer");
} /// <summary>
/// 写入XML中的数据
/// </summary>
/// <param name="key">键</param>
/// <param name="value">值</param>
/// <returns></returns>
private void ConfigSetValues(string key,string value)
{
XmlDocument xDoc = new XmlDocument();
xDoc.Load("Config.xml");
XmlNode xNode;
XmlElement xElement;
XmlElement xElement1;
xNode = xDoc.SelectSingleNode("//appSettings");
xElement = (XmlElement)xNode.SelectSingleNode("//add[@key='"+key+"']");
if (xElement != null)
{
xElement.SetAttribute("value", value); //"value"固定的AppStrings结点属性
}
else
{
xElement1 = xDoc.CreateElement("add");
xElement1.SetAttribute("key", key); //"key"固定的AppStrings结点属性
xElement1.SetAttribute("value", value); //"value"固定的AppStrings结点属性
xNode.AppendChild(xElement1);
}
xDoc.Save("Config.xml");
} /// <summary>
/// 设置数据库连接字符串
/// </summary>
private void SetConfigSub()
{
string serverName = "server=" + txbServerName.Text + ";";
string dbName = "database=" + txbDBName.Text + ";";
string dbAccount = "uid=" + txbAccountName.Text + ";";
string dbPwd = "pwd=" + txbDBPwd.Text + ";";
string dogServer = txbDogAddress.Text;
string appSetting = serverName + dbName + dbAccount + dbPwd;
ConfigSetValues("ConnectionString", appSetting);
ConfigSetValues("dogServer", dogServer);
}
}
}

效果图如下:

XML数据的读取—数据库配置文件的更多相关文章

  1. 6.12-PrepareStatement,JdbcUtil 读取数据库配置文件properties,dao模式

    一.PrepareStatement 防止sql注入 PrepareStatement 是预编译sql语句 更加灵活,更有效率 executeUpdate() 做增删改 executeQuery() ...

  2. C#winfrom将XML数据保存读取删除

    //创建一个数据集,将其写入xml文件 string name = "1.xml"; System.Data.DataSet ds = new System.Data.DataSe ...

  3. ASP.NET - 演练:创建网页以显示 XML 数据

    数据通常是以 XML 格式提供给 Web 应用程序的.但是,XML 数据本质上是分层的,因此您可能希望能够在基于列表的控件中使用 XML 数据,如 GridView 或 DropDownList 控件 ...

  4. c#调用JAVA的Webservice处理XML数据及批量轮询的实现方法

    前段时间做一个调用外单位WEBSERVICE的项目,项目完成的功能其实很简单,就是我们单位有很多车友会员,我们想对他们提供车辆违章信息告之服务!我们这边交警部门给我们开放了WS的接口,我们就是想通过这 ...

  5. 使用dom4j中SAXReader解析xml数据

    public ApiConfig(String configFilePath) throws DocumentException{ SAXReader reader = new SAXReader() ...

  6. iOS开发网络篇之Web Service和XML数据解析

    郝萌主倾心贡献,尊重作者的劳动成果,请勿转载. 假设文章对您有所帮助,欢迎给作者捐赠,支持郝萌主.捐赠数额任意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源代码下载:点我传送 游戏官方下 ...

  7. 大数据学习day25------spark08-----1. 读取数据库的形式创建DataFrame 2. Parquet格式的数据源 3. Orc格式的数据源 4.spark_sql整合hive 5.在IDEA中编写spark程序(用来操作hive) 6. SQL风格和DSL风格以及RDD的形式计算连续登陆三天的用户

    1. 读取数据库的形式创建DataFrame DataFrameFromJDBC object DataFrameFromJDBC { def main(args: Array[String]): U ...

  8. 读取数据库数据,并将数据整合成3D饼图在jsp中显示

    首先我将生成饼图的方法独立写成一个PieChar.java类,详细代码如下:(数据库需要自己建,如有需要的话) import java.io.IOException; import java.sql. ...

  9. 我也来学着写写WINDOWS服务-解析xml抓取数据并插入数据库

    项目告一段落,快到一年时间开发了两个系统,一个客户已经在试用,一个进入客户测试阶段,中间突然被项目经理(更喜欢叫他W工)分派一个每隔两小时用windows服务去抓取客户提供的外网xml,解析该xml, ...

随机推荐

  1. javascript在一个字符串中每隔多少字符插入某个字符串

    function insertStr(str,tar,n,m){ var x='' var str=str.split('') if(str.length==0) return for(var i=n ...

  2. 【行为型】Iterator模式

    迭代器模式提供一种方法顺序访问聚合对象中的各个元素,而又不需要暴露该聚合对象的内部表示.对于该模式,估计几乎所有的人都使用过,在此直接给出类结构图参考如下: 如前所述,迭代器模式的思想主要是:一能提供 ...

  3. POJ 2250(LCS最长公共子序列)

    compromise Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u   Descri ...

  4. 资料Link集合

    Spark RDD API详解(一) Map和Reduce|  scala中Iterator的比较| 使用sbt构建scala应用| sbt常用命令| sbt更改默认ivy仓库位置| linux手动安 ...

  5. inet_aton等函数

    地址转换函数 int inet_aton(const char *strptr,struct in_addr *addrptr) 将strptr所指C字符串转换成一个32位的网络字节序二进制值,并同过 ...

  6. python处理mysql慢查询日志

    # -*- coding:utf8 -*- ''' Created on 2017年1月9日 @author: qiancheng ''' import re import os from email ...

  7. 如何做好PPT?

  8. Expanding Rods

    http://poj.org/problem?id=1 #include<cstdio> #include<cstring> #include<cmath> #in ...

  9. 云存储,OWNCLOUD,真的遇到过这个需求哟。。。

  10. POJ2253 Frogger(最短路)

    题目链接. 题意: 从0号点,到1号点,找一条能通过的路,使得这条路中的最大的边,比其它所有可能的路中的边都小. 分析: 这题就是按着dijkstra写,写着写着觉得像是prim了. 其中d[n]表示 ...