DataSet与Xml之间的转换
2008-06-28 11:26
351 查看
DataSet与Xml之间的转换
DataSet转化为Xml,Xml转化为DataSet,Ado.net中使用方法DataSet.WriteXml()和DataSet.ReadXml(),由于有多个重载方法,所以这里有多条路径可以实现,可谓条条大道通罗马。这里我就把所有的用法来尝试下,希望给大家有个借鉴作用。
因为DataSet.ReadXml()和DataSet.WriteXml()共8种重载方法,前四种是不带架构的,后四种带架构。这里举出带架构的4种方法。
/// <summary>
/// DataSet和Xml之间的转换
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void DsAndXml_Click(object sender, EventArgs e)
{
//自定义一个DataSet,里面有一列a,一行值为"hello world!",Xml数据从这个数据集中来读取
DataSet dsWrite = new DataSet();
DataTable dt = new DataTable();
dt.Columns.Add("a", typeof(string));
DataRow dr = dt.NewRow();
dr[0] = "hello world!";
dt.Rows.Add(dr);
dsWrite.Tables.Add(dt);
//自定义一个DataSet用来从xml中读取数据
DataSet dsRead = new DataSet();
int k = Convert.ToInt32(this.textBox1.Text.ToString());//第几种重载
switch(k)
{
//第一种使用stream
case 1:
//创建文件流,将DataSet中的数据写入文件流中
Stream stream = new FileStream(@System.AppDomain.CurrentDomain.BaseDirectory.ToString()+"Test.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite);
//dsWrite.WriteXml(stream);//不带架构
dsWrite.WriteXml(stream, XmlWriteMode.WriteSchema);//将架构一起写入文件流
stream.Close();
//从文件里读取
dsRead.ReadXml(@System.AppDomain.CurrentDomain.BaseDirectory.ToString() + "Test.txt");
break;
//第二种使用FileName
case 2:
//写出
dsWrite.WriteXml(@System.AppDomain.CurrentDomain.BaseDirectory.ToString() + "Test.txt");
//读入
dsRead.ReadXml(@System.AppDomain.CurrentDomain.BaseDirectory.ToString() + "Test.txt");
break;
//第三种使用XmlTextWriter
case 3:
//写出
StringBuilder s1 = new StringBuilder();
TextWriter tw1 = new StringWriter(s1);
System.Xml.XmlTextWriter xtw1= new System.Xml.XmlTextWriter(tw1);
dsWrite.WriteXml(xtw1,XmlWriteMode.WriteSchema);
string xml1 = s1.ToString();
//读入
TextReader tr1 = new StringReader(xml1);
dsRead.ReadXml(tr1,XmlReadMode.ReadSchema);
//System.Xml.XmlReader xr = System.Xml.XmlReader.Create(tr1);
//dsRead.ReadXml(xr);
break;
//第四种使用TextReader、TextWriter
case 4:
//DataSet转化为xml
StringBuilder s = new StringBuilder();
TextWriter tw = new StringWriter(s);
dsWrite.WriteXml(tw, XmlWriteMode.WriteSchema);
string xml = s.ToString();
//xml转化为DataSet
TextReader tr = new StringReader(xml);
dsRead.ReadXml(tr,XmlReadMode.ReadSchema);
break;
default:
break;
}
}
相关文章推荐
- Asp.net中XML与DataSet、DataTable之间的转换
- dataset与xml之间的转换
- XML与DataTable/DataSet之间转换
- DataSet与XML操作之间接转换
- [XML]XML与Datatalbe_DataSet_之间的相互转换
- DataSet 和 XML之间的转换
- Asp.net MVC后台 XML、DataTable、DataSet之间的数据转换
- [XML]XML与Datatalbe_DataSet_之间的相互转换
- 对xml的处理_Dom4j入门_Dom4j与w3c之间的Document相互转换
- 利用Digester实现xml和bean之间的转换(二)
- c# XML和实体类之间相互转换(序列化和反序列化)
- c# XML和实体类之间相互转换(序列化和反序列化)
- JSON与JavaBean、XML之间的转换
- 使用JAXB来实现Java合xml之间的转换
- dataset和实体类 之间的转换
- XMLGregorianCalendar类型和Date类型之间的相互转换
- JAXB 实现java对象与xml之间互相转换
- 如何将数据从DATASET写入XML文档,并转换成其他应用系统所需的格式!(如RSS阅读器XML文档格式)
- 利用XStream在Java对象和XML之间相互转换
- JAXB XML与对象之间转换