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

时间:2023-04-14 09:01:28 

欲达此目的,可以采用下列两种作法:
◆使用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后面的值就是列名,请读者根据需要进行修改。

标签:C#,DataSet,XML,格式化字段数据
0
投稿

猜你喜欢

  • SpringCloud微服务熔断器Hystrix使用详解

    2023-07-06 22:57:46
  • 一篇文章带你深入了解Java封装

    2023-11-20 00:37:45
  • .Net WInform开发笔记(五)关于事件Event

    2023-11-22 01:00:18
  • IntelliJ IDEA 15款超级牛逼插件推荐(自用,超级牛逼)

    2023-10-10 05:51:22
  • springdata jpa使用Example快速实现动态查询功能

    2022-12-01 21:49:08
  • 解读赫夫曼树编码的问题

    2022-03-13 06:37:26
  • C语言编程C++动态内存分配示例讲解

    2023-11-02 18:00:12
  • logback输出日志屏蔽quartz的debug等级日志方式

    2023-08-04 23:40:04
  • java实现分页显示效果

    2021-12-29 20:17:43
  • Android开发实现控件双击事件的监听接口封装类

    2023-02-15 00:56:18
  • Java DecimalFormat 保留小数位及四舍五入的陷阱介绍

    2023-11-09 04:49:33
  • unity实现玻璃效果

    2023-03-17 07:08:28
  • Java Swing组件布局管理器之FlowLayout(流式布局)入门教程

    2021-11-08 05:33:06
  • Winform利用分页控件实现导出PDF文档功能

    2023-08-11 10:15:04
  • Android入门简单实例

    2021-07-26 16:34:04
  • @Autowired注解在抽象类中失效的原因及解决

    2021-07-15 06:12:04
  • 一文搞懂Java创建线程的五种方法

    2023-10-30 18:35:04
  • Spring EL表示式的运用@Value说明

    2023-03-05 02:33:19
  • java基础之接口组成更新的实现

    2022-10-03 08:10:27
  • Java中byte输出write到文件的实现方法讲解

    2023-12-25 11:11:36
  • asp之家 软件编程 m.aspxhome.com