一切福田,不離方寸,從心而覓,感無不通。

Xml和DataSet互操作类

using System;using System.Data;using System.Xml; //***************************************// 作者: yangtang_newton//其实用DataSet操作XML,归根到底就是对DataSet里的表格,行,列等进行操作,//然后用DataSet里的东西重新写到XML中,从而实现编辑XML的目的。如果再配合上.xsd文件的话,那效果更佳。//xsd生成方法:xsd file.xml [/outputdir:directory] [/parameters:file.xml] //*************************************** namespace USTC{/// <summary>/// OperateXmlByDataSet 的摘要说明。/// </summary>public class XmlDataSet{private string strXmlPath;//这个是相对路径public XmlDataSet(string strXmlPath){  //  // TODO: 在此处添加构造函数逻辑  //  this.strXmlPath=strXmlPath;} #region GetDataSetByXml/// <summary>/// 读取xml直接返回DataSet/// </summary>/// <param name="strXmlPath">xml文件相对路径</param>/// <returns></returns>public DataSet GetDataSetByXml(){  try  {  DataSet ds = new DataSet();    ds.ReadXml(GetXmlFullPath(strXmlPath));  if(ds.Tables.Count > 0)  {  return ds;  }  return null;  }  catch(Exception)  {  return null;  }}#endregion /*  *  以下代码读取到一个没有排序和筛选的DataSet。       USTC.XmlDataSet XML=new XmlDataSet(@"XML/PortalCfg.xml");DataGrid1.DataSource = XML.GetDataSetByXml();DataGrid1.DataBind();//以下代码读到的数据是经过筛选和排序的:DataGrid1.DataSource =XML.GetDataViewByXml("name = 'Asp.net’", //条件:name列值为Asp.net"peopleNum desc"); //按peopleNum列降序排列DataGrid1.DataBind(); */ #region GetDataViewByXml/// <summary>/// 读取Xml返回一个经排序或筛选后的DataView/// </summary>/// <param name="strXmlPath"></param>/// <param name="strWhere">筛选条件,如:"name = […]

龙生   13 Feb 2011
View Details

C# DataSet,ListView和XML文件互操作的例子

DataSet和XML文件互操作的例子 //读取XML文件到DataSetDataSet ds = new DataSet();MyXmlPath = "C:\\Message.xml";FileStream fs = new FileStream(MyXmlPath, FileMode.Open);ds.ReadXml(fs, XmlReadMode.ReadSchema);fs.Close();//筛选行存入DataSetDataRow[] FoundRows;string Expression = "AREA IN ('" + Area + "',")";string SortOrder = "DAY DESC";FoundRows = ds.Tables[0].Select(Expression, SortOrder);DataTable Mydt = new DataTable();Mydt.Columns.Add("FKEY");Mydt.Columns.Add("IIIII");Mydt.Columns.Add("NAME");Mydt.Columns.Add("AREA");Mydt.Columns.Add("X");Mydt.Columns.Add("Y");Mydt.Columns.Add("BKIND");Mydt.Columns.Add("SKIND");Mydt.Columns.Add("DAY");Mydt.Columns.Add("ETIME");Mydt.Columns.Add("TYPE");Mydt.Columns.Add("MAIN");Mydt.Columns.Add("TTIME");foreach (DataRow dr in FoundRows){Mydt.Rows.Add(dr.ItemArray);}DataSet Myds = new DataSet();Myds.Tables.Add(Mydt);//保存到XML文件Myds.WriteXml(MyXmlPath, XmlWriteMode.WriteSchema); //ListView的一个例子XmlDocument doc = new XmlDocument();XmlDeclaration Declaration = doc.CreateXmlDeclaration("1.0","GB2312","");doc.AppendChild(Declaration);XmlElement xe = doc.CreateElement("Infos");doc.AppendChild(xe);for(int i = 0;i < listview.Items.Count;i++){XmlNode parent = doc.CreateElement("Info" + i.ToString());ListViewItem temp = listview.Items[i];for(int j = 0;j < temp.SubItems.Count;j++){string s = temp.SubItems[j].Text;XmlNode node = doc.CreateElement(s);node.InnerText = s;parent.AppendChild(node);}doc.AppendChild(parent);}doc.Save(FilePath); 

龙生   13 Feb 2011
View Details