熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

C#中將DataSet的內容寫成XML

2013-11-13 10:15:47  來源: .NET編程 

  許多讀者經常詢問一個問題那就是在將DataSet的內容寫成XML時如何格式化字段數據最常見的需求就是希望日期時間值與數值數據能夠以所需的格式呈現於XML中欲達此目的可以采用下列兩種作法

  ◆使用XmlConvert類

◆將一個XSLT轉換套用至DataSet數據的XML表示

  程序范例

  圖 所示是程序范例CH_DemoFormcs的執行畫面我們發現從DataSet寫成XML的日期與薪資字段數據皆已采用我們所要求的格式基本上本范例是利用XmlConvert類來完成字段的格式化操作相關程序代碼編寫在按鈕的Click事件處理函數中列示如下

C#中將DataSet的內容寫成XML時如何格式化字段數據

  

  

  // 導入命名空間

using SystemXml;

using SystemDataSqlClient;

using SystemIO;

  private void btnWriteDataSetToXml_Click(object sender EventArgs e)

{

string myXmlFile = @C:\DataSetOutputXmlxml;

  try

{

// 建立一個 XmlTextReader 對象來讀取 XML 數據

using(XmlTextReader myXmlReader =

new XmlTextReader(dsGetXml() XmlNodeTypeElement null))

{

// 使用指定的文件與編碼方式來建立一個 XmlTextWriter 對象

using(SystemXmlXmlTextWriter myXmlWriter =

new SystemXmlXmlTextWriter(myXmlFile EncodingUTF))

{

myXmlWriterFormatting = FormattingIndented;

myXmlWriterIndentation = ;

myXmlWriterWriteStartDocument();

  string elementName = ;

  // 解析並顯示每一個節點

while(myXmlReaderRead())

{

switch(myXmlReaderNodeType)

{

case XmlNodeTypeElement:

myXmlWriterWriteStartElement(myXmlReaderName);

elementName = myXmlReaderName;

  break;

case XmlNodeTypeText:

switch(elementNameToLower())

{

case 出生日期:

// 要求轉換成字符串的日期時間數據采用自定義的格式字符串來格式化

myXmlWriterWriteString(XmlConvertToDateTime(myXmlReaderValue

XmlDateTimeSerializationModeLocal)ToString(

yyyy 年 MMMM dd 號 dddd時間 HH 點 mm 分 ss 秒));

  break;

case 雇用日期:

case 加薪日期:

// 要求轉換成字符串的日期時間數據采用簡短日期模式

myXmlWriterWriteString(XmlConvertToDateTime(myXmlReaderValue

XmlDateTimeSerializationModeLocal)ToString(d));

  break;

case 起薪:

case 目前薪資:

// 要求轉換成字符串的薪資值采用貨幣格式

myXmlWriterWriteString(XmlConvertToDecimal(

myXmlReaderValue)ToString(c));

  break;

default:

myXmlWriterWriteString(myXmlReaderValue);

  break;

}

  break;

case XmlNodeTypeEndElement:

myXmlWriterWriteEndElement();

  break;

}

}

}

}

  // 讀取所輸出的 Xml 文件並將其內容顯示在 TextBox 文本框中

txtXmlResultText = FileReadAllText(myXmlFile);

}

catch(Exception ex)

{

MessageBoxShow(exMessage);

}

}


From:http://tw.wingwit.com/Article/program/net/201311/13105.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.