代码和注释如下:
string cmdStr = "select top 3 * from Customers for xml auto,elements";
SqlConnection cn = new SqlConnection(connStr);
cn.Open();
SqlCommand cmd = new SqlCommand(cmdStr,cn);
//SqlDataReader sdr = cmd.ExecuteReader();
//XmlReader xmldr = cmd.ExecuteXmlReader();//运行时xmldr为null,奇怪? //通过下面方法得到xml数据
string xmlData = (string)cmd.ExecuteScalar();
StringReader strReader = new StringReader(xmlData);
DataSet ds = new DataSet();
//此处抛出异常,提示节点不是一个
//经测试,如将string cmdStr 改为 "select top 1 * from Customers for xml auto,elements"
//下面语句则不出错
ds.ReadXml(strReader,XmlReadMode.Auto);
//ds.Load(sdr, LoadOption.OverwriteChanges, ds.Tables["Customers"]);
//xmldr.Close();
//strReader.Close();
cn.Close();
string filepath = "C:\\mydataXML.xml";
ds.WriteXml(filepath);请指教,如有不明白之处,请多多见谅
string cmdStr = "select top 3 * from Customers for xml auto,elements";
SqlConnection cn = new SqlConnection(connStr);
cn.Open();
SqlCommand cmd = new SqlCommand(cmdStr,cn);
//SqlDataReader sdr = cmd.ExecuteReader();
//XmlReader xmldr = cmd.ExecuteXmlReader();//运行时xmldr为null,奇怪? //通过下面方法得到xml数据
string xmlData = (string)cmd.ExecuteScalar();
StringReader strReader = new StringReader(xmlData);
DataSet ds = new DataSet();
//此处抛出异常,提示节点不是一个
//经测试,如将string cmdStr 改为 "select top 1 * from Customers for xml auto,elements"
//下面语句则不出错
ds.ReadXml(strReader,XmlReadMode.Auto);
//ds.Load(sdr, LoadOption.OverwriteChanges, ds.Tables["Customers"]);
//xmldr.Close();
//strReader.Close();
cn.Close();
string filepath = "C:\\mydataXML.xml";
ds.WriteXml(filepath);请指教,如有不明白之处,请多多见谅
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货