C# DataSet的内容写成XML时如何格式化字段数据_C#教程

欲达此目的,可以采用下列两种作法:
◆使用XmlConvert类。
◆将一个XSLT转换套用至DataSet数据的XML表示。
程序范例
本范例是利用XmlConvert类来完成字段的格式化操作。

复制代码 代码如下:

// 导入命名空间。
using System.Xml;
using System.Data.SqlClient;
using System.IO;
private void btnWriteDataSetToXml_Click(object sender, EventArgs e)
{
string myXmlFile = @"C:\DataSetOutputXml.xml";
try
{
// 建立一个 XmlTextReader 对象来读取 XML 数据。
using(XmlTextReader myXmlReader =
new XmlTextReader(ds.GetXml(), XmlNodeType.Element, null))
{
// 使用指定的文件与编码方式来建立一个 XmlTextWriter 对象。
using(System.Xml.XmlTextWriter myXmlWriter =
new System.Xml.XmlTextWriter(myXmlFile, Encoding.UTF8))
{
myXmlWriter.Formatting = Formatting.Indented;
myXmlWriter.Indentation = 4;
myXmlWriter.WriteStartDocument();
string elementName = "";
// 解析并显示每一个节点。
while(myXmlReader.Read())
{
switch(myXmlReader.NodeType)
{
case XmlNodeType.Element:
myXmlWriter.WriteStartElement(myXmlReader.Name);
elementName = myXmlReader.Name;
break;
case XmlNodeType.Text:
switch(elementName.ToLower())
{
case "出生日期":
// 要求转换成字符串的日期时间数据采用自定义的格式字符串来格式化。
myXmlWriter.WriteString(XmlConvert.ToDateTime(myXmlReader.Value,
XmlDateTimeSerializationMode.Local).ToString(
"yyyy 年 MMMM dd 号 dddd,时间 HH 点 mm 分 ss 秒"));
break;
case "雇用日期":
case "加薪日期":
// 要求转换成字符串的日期时间数据采用简短日期模式。
myXmlWriter.WriteString(XmlConvert.ToDateTime(myXmlReader.Value,
XmlDateTimeSerializationMode.Local).ToString("d"));
break;
case "起薪":
case "目前薪资":
// 要求转换成字符串的薪资值采用货币格式。
myXmlWriter.WriteString(XmlConvert.ToDecimal(
myXmlReader.Value).ToString("c"));
break;
default:
myXmlWriter.WriteString(myXmlReader.Value);
break;
}
break;
case XmlNodeType.EndElement:
myXmlWriter.WriteEndElement();
break;
}
}
}
}
// 读取所输出的 Xml 文件,并将其内容显示在 TextBox 文本框中。
txtXmlResult.Text = File.ReadAllText(myXmlFile);
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}

注:switch中每个case后面的值就是列名,请读者根据需要进行修改。

时间: 2024-09-17 11:02:22

C# DataSet的内容写成XML时如何格式化字段数据_C#教程的相关文章

C#中将DataSet的内容写成XML时如何格式化字段数据

许多读者经常询问一个问题,那就是在将DataSet的内容写成XML时,如何格式化字段数据.最常见的需求,就是希望日期时间值与数值数据能够以所需的格式呈现于XML中.欲达此目的,可以采用下列两种作法: ◆使用XmlConvert类. ◆将一个XSLT转换套用至DataSet数据的XML表示. 程序范例 图 12-23所示是程序范例CH12_DemoForm018.cs的执行画面,我们发现,从DataSet写成XML的日期与薪资字段数据皆已采用我们所要求的格式.基本上,本范例是利用XmlConver

DataSet写入XML时如何格式化??

问题描述 DataSet写入XML时如何格式化??比如原来数据是80.10不格式化生成XML文件的里面是80.180.00为80我想把数据格式化成80.10-----80.10 解决方案 解决方案二:没人回答,,,,解决方案三:就没有人知道吗解决方案四:貌似以前做是在生成datatable之前对其生成的每个行进行格式化的....好久没做过这些方面的了帮顶下~~~解决方案五:顶解决方案六:顶解决方案七:xsl解决方案八:楼上的知道吗,,帮我一下,,谢谢QQ:110930961解决方案九:想了半天,

数据分析-C# 读取4g大小的txt文件,并写成xml文件

问题描述 C# 读取4g大小的txt文件,并写成xml文件 我这边有个日志文件,非常的大,这边需要对这个日志文件进行数据分析, 对于每一行的数据进行处理比如ip地址相同的数据:ip:127.0.0.1 , num 22, starttime 2015-2-5 12:21:20 endtime 2015-2-5 23:59:59提取这样格式的数据 并写入xml文件中,由于数据非常的大,写人的非常慢 解决方案 直接用Hadoop,Spark等分布式框架做分析吧,数据量太大了. 这么大的XML解析起来

C#如何把上传的数据写成xml文档

问题描述 C#如何把上传的数据写成xml文档,要详细代码 解决方案 解决方案二:Linq2Xml...神马样的问题,神马样的回答.解决方案三:Xml串行化:[XmlRoot]publicclassProcduct{privateintprodId;[XmlElement]publicintProdId{get{returnprodId;}set{prodId=value;}}privatestringprodName;[XmlElement]publicstringProdName{get{re

如何实现将datagridview的内容保存成excel时显示进度条

问题描述 各位大虾:请问如何在保存数据到excel的过程中显示保存的进度条那.我现在讲datagridview的内容保存到excel时总是会卡顿很久,线做一个进度条显示保存的进度.但是不知道怎么弄,求指点!注意:需要真实显示保存的进度状态. 解决方案 解决方案二:保存时如果你是遍历grid,那就加个progressbar就是了解决方案三:引用楼主guangzi8531的回复: 各位大虾:请问如何在保存数据到excel的过程中显示保存的进度条那.我现在讲datagridview的内容保存到exce

Asp.net2.0中用Dataset向Access里添加记录时无值字段也会被添加为空,默认值不管用,怎么回事啊

问题描述 我用DataSet向Access里添加新记录的时候,本想省事用字段的默认值自动赋值,但现在只要OleDbDataAdapter一更新记录就将没有赋值的字段自动设置为"",字段的默认值根本不管用,这是为什么呢,请高人指点一二 解决方案 解决方案二:默认值不好用你就给他自动加个值呗!解决方案三:自己加值很麻烦,要写很多重复的代码的,所以想省事的解决方案四:沉水,自顶解决方案五:再顶解决方案六:...你在数据库里不默认null或0吗?在代码里给他等于null或0就行了.就这一句也麻

C# 操作XML文档 使用XmlDocument类方法_C#教程

W3C制定了XML DOM标准.很多编程语言中多提供了支持W3C XML DOM标准的API.我在之前的文章中介绍过如何使用Javascript对XML文档进行加载与查询.在本文中,我来介绍一下.Net中的XmlDocument类.它支持并扩展了W3C XML DOM标准.它将整个XML文档都先装载进内存中,然后再对XML文档进行操作,所以如果XML文档内容过大,不建议使用XmlDocument类,因为会消耗过多内存.对于很大的XML文档,可以使用XmlReader类来读取.因为XmlReade

浅谈C#手机号换成111XXXX1111 这种显示的解决思路_C#教程

如下所示: String subStr=phone.Substring(3,4); oldcellphone.Text = phone.Replace(subStr,"****"); /// <summary> /// 替换手机号中间四位为* /// </summary> /// <param name="phoneNo"></param> /// <returns></returns> pro

用C#写的ADSL拨号程序的代码示例_C#教程

<!--StartFragment-->ADSL自动拨号类,前提是在系统中已经有了一个宽带拨号连接 调用代码: RASDisplay ras = new RASDisplay(); ras.Disconnect();//断线 ras.Connect("adsl");//拨号  复制代码 代码如下: using System;  using System.Runtime.InteropServices;  public struct RASCONN  {      publi