XML数据的读取—数据库配置文件
数据库配置文件(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数据的读取—数据库配置文件的更多相关文章
- 6.12-PrepareStatement,JdbcUtil 读取数据库配置文件properties,dao模式
一.PrepareStatement 防止sql注入 PrepareStatement 是预编译sql语句 更加灵活,更有效率 executeUpdate() 做增删改 executeQuery() ...
- C#winfrom将XML数据保存读取删除
//创建一个数据集,将其写入xml文件 string name = "1.xml"; System.Data.DataSet ds = new System.Data.DataSe ...
- ASP.NET - 演练:创建网页以显示 XML 数据
数据通常是以 XML 格式提供给 Web 应用程序的.但是,XML 数据本质上是分层的,因此您可能希望能够在基于列表的控件中使用 XML 数据,如 GridView 或 DropDownList 控件 ...
- c#调用JAVA的Webservice处理XML数据及批量轮询的实现方法
前段时间做一个调用外单位WEBSERVICE的项目,项目完成的功能其实很简单,就是我们单位有很多车友会员,我们想对他们提供车辆违章信息告之服务!我们这边交警部门给我们开放了WS的接口,我们就是想通过这 ...
- 使用dom4j中SAXReader解析xml数据
public ApiConfig(String configFilePath) throws DocumentException{ SAXReader reader = new SAXReader() ...
- iOS开发网络篇之Web Service和XML数据解析
郝萌主倾心贡献,尊重作者的劳动成果,请勿转载. 假设文章对您有所帮助,欢迎给作者捐赠,支持郝萌主.捐赠数额任意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源代码下载:点我传送 游戏官方下 ...
- 大数据学习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 ...
- 读取数据库数据,并将数据整合成3D饼图在jsp中显示
首先我将生成饼图的方法独立写成一个PieChar.java类,详细代码如下:(数据库需要自己建,如有需要的话) import java.io.IOException; import java.sql. ...
- 我也来学着写写WINDOWS服务-解析xml抓取数据并插入数据库
项目告一段落,快到一年时间开发了两个系统,一个客户已经在试用,一个进入客户测试阶段,中间突然被项目经理(更喜欢叫他W工)分派一个每隔两小时用windows服务去抓取客户提供的外网xml,解析该xml, ...
随机推荐
- python 文件系统
- 关于一个隐藏和显示物品列表的demo
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...
- js学习笔记之:数组(一)
今天来学习一下js中的一维数组.二维数组,以及数组的赋值.遍历.删除.排序等操作: 1 数组的声明 js提供了一个数组对象Array,默认是一维数组,其申明的方法如下: var aCity = ...
- mybatis中association的column传入多个参数值
顾名思义,association是联合查询. 在使用association中一定要注意几个问题.文笔不好,白话文描述一下. 1: <association property="fncg ...
- 折半插入排序(Binary Insertion Sort)的C语言实现
原创文章,转载请注明来自钢铁侠Mac博客http://www.cnblogs.com/gangtiexia 折半插入排序(Binary Insertion Sort)的基本思想是将新记录插入到已经 ...
- 转:Sharethrough使用Spark Streaming优化实时竞价
文章来自于:http://www.infoq.com/cn/news/2014/04/spark-streaming-bidding 来自于Sharethrough的数据基础设施工程师Russell ...
- 电源VCC、VSS、VDD、VEE、VPP、Vddf标号的区别
一.解释VCC:C=circuit表示电路的意思,即接入电路的电压: VDD:D=device表示器件的意思,即器件内部的工作电压:VEE:发射极电源电压,EmitterVoltage,一般用于ECL ...
- SET NOCOUNT (Transact-SQL)
阻止在结果集中返回显示受 Transact-SQL 语句或存储过程影响的行计数的消息. 语法 SET NOCOUNT { ON | OFF } 注释 当 SET NOCOUNT 为 ON 时,不返回 ...
- Delphi7 THTTPRIO 控件设置超时
HTTPRIOLeExp.HTTPWebNode.SendTimeout := 100000; //发射 HTTPRIOLeExp.HTTPWebNode.ConnectTimeout := 10 ...
- rails console --sandbox出现的安装错误解决方案
rails中可以用使用console命令行来测试运行rails应用程序,但是采用源码编译安装的话可能缺少readline动态库,导致ruby无法使用这个库此时如果调用rails console(rai ...