国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#保存與讀取DataTable信息到XML格式的方法

2020-01-24 01:31:55
字體:
來源:轉載
供稿:網友

本文實例講述了C#保存與讀取DataTable信息到XML格式的方法。分享給大家供大家參考。具體如下:

這里主要實現:

1.將DataTable中的信息保存到XML中

2.將以上述格式在XML中保存的信息讀取到DataTable內

一、將DataTable的內容寫入到XML文件中

/// <summary>/// 將DataTable的內容寫入到XML文件中/// </summary>/// <param name="dt">數據源</param>/// <param name="address">XML文件地址</param>public static bool WriteToXml(DataTable dt, string address){ try {  //如果文件DataTable.xml存在則直接刪除  if (File.Exists(address))  {   File.Delete(address);  }  XmlTextWriter writer =    new XmlTextWriter(address, Encoding.GetEncoding("GBK"));  writer.Formatting = Formatting.Indented;  //XML文檔創建開始  writer.WriteStartDocument();  writer.WriteComment("DataTable: " + dt.TableName);  writer.WriteStartElement("DataTable"); //DataTable開始  writer.WriteAttributeString("TableName", dt.TableName);  writer.WriteAttributeString("CountOfRows", dt.Rows.Count.ToString());  writer.WriteAttributeString("CountOfColumns", dt.Columns.Count.ToString());  writer.WriteStartElement("ClomunName", ""); //ColumnName開始  for (int i = 0; i < dt.Columns.Count; i++)  {   writer.WriteAttributeString(    "Column" + i.ToString(), dt.Columns[i].ColumnName);  }  writer.WriteEndElement(); //ColumnName結束  //按行各行  for (int j = 0; j < dt.Rows.Count; j++)  {   writer.WriteStartElement("Row" + j.ToString(), "");   //打印各列   for (int k = 0; k < dt.Columns.Count; k++)   {    writer.WriteAttributeString(     "Column" + k.ToString(), dt.Rows[j][k].ToString());   }   writer.WriteEndElement();  }  writer.WriteEndElement(); //DataTable結束  writer.WriteEndDocument();  writer.Close();  //XML文檔創建結束 } catch (Exception ex) {  Console.WriteLine(ex.Message);  return false; } return true;}

二、將以上述格式在XML中保存的信息讀取到DataTable內

/// <summary>/// 從XML文件中讀取一個DataTable/// </summary>/// <param name="dt">數據源</param>/// <param name="address">XML文件地址</param>/// <returns></returns>public static DataTable ReadFromXml(string address){ DataTable dt = new DataTable(); try {  if (!File.Exists(address))  {   throw new Exception("文件不存在!");  }  XmlDocument xmlDoc = new XmlDocument();  xmlDoc.Load(address);  XmlNode root = xmlDoc.SelectSingleNode("DataTable");  //讀取表名  dt.TableName = ((XmlElement)root).GetAttribute("TableName");  //Console.WriteLine("讀取表名: {0}", dt.TableName);  //讀取行數  int CountOfRows = 0;  if (!int.TryParse(((XmlElement)root).   GetAttribute("CountOfRows").ToString(), out CountOfRows))  {   throw new Exception("行數轉換失敗");  }  //讀取列數  int CountOfColumns = 0;  if (!int.TryParse(((XmlElement)root).   GetAttribute("CountOfColumns").ToString(), out CountOfColumns))   {   throw new Exception("列數轉換失敗");  }  //從第一行中讀取記錄的列名  foreach (XmlAttribute xa in root.ChildNodes[0].Attributes)  {   dt.Columns.Add(xa.Value);   //Console.WriteLine("建立列: {0}", xa.Value);  }  //從后面的行中讀取行信息  for (int i = 1; i < root.ChildNodes.Count; i++)  {   string[] array = new string[root.ChildNodes[0].Attributes.Count];   for (int j = 0; j < array.Length; j++)   {    array[j] = root.ChildNodes[i].Attributes[j].Value.ToString();   }   dt.Rows.Add(array);   //Console.WriteLine("行插入成功");  } } catch (Exception ex) {  Console.WriteLine(ex.Message);  return new DataTable(); } return dt;}

三、Main函數調用

static void Main(string[] args){ //1.將DataTable內容寫入到XML文件 //建立DataTable取名Table4Test DataTable dt1 = new DataTable("Table4Test"); //生成四列,列名為Column0-3 dt1.Columns.Add("Column0"); dt1.Columns.Add("Column1"); dt1.Columns.Add("Column2"); dt1.Columns.Add("Column3"); //生成四行 dt1.Rows.Add("A0", "A1", "A2", "A3"); dt1.Rows.Add("B0", "B1", "B2", "B3"); dt1.Rows.Add("C0", "C1", "C2", "C3"); //寫入到XML if (WriteToXml(dt1, "DataTable.xml")) {  Console.WriteLine("寫入成功"); } //================================ //2.從XML文件中讀取內容到DataTable //讀取信息 DataTable dt2 = ReadFromXml("DataTable.xml"); //輸出讀取的信息 Console.WriteLine("讀取到的信息:"); for (int i = 0; i < dt2.Rows.Count; i++) {  for (int j = 0; j < dt2.Columns.Count; j++)  {   Console.Write(dt2.Rows[i][j].ToString() + "/t");  }  Console.WriteLine(); } Console.ReadLine();}

四、程序運行結果

程序運行結果

寫入后的XML文件

希望本文所述對大家的C#程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宁强县| 鄄城县| 深水埗区| 那曲县| 永宁县| 宜兰县| 称多县| 建瓯市| 商南县| 福建省| 永平县| 佛教| 安泽县| 丽水市| 来安县| 遂昌县| 浪卡子县| 赞皇县| 故城县| 卓资县| 巴楚县| 万载县| 象州县| 崇文区| 丹东市| 江陵县| 建水县| 南川市| 加查县| 米林县| 淮滨县| 自贡市| 曲靖市| 宜阳县| 勃利县| 山丹县| 二连浩特市| 华阴市| 安康市| 宁远县| 罗平县|