参看如下代码:
string dataFile="db.xml";
FileStream fin;
fin=new FileStream(Server.MapPath(dataFile),FileMode.Open,FileAccess.Read,FileShare.ReadWrite);
DataSet ds=new DataSet();
ds.ReadXml(fin);
fin.Close();
DataRow newRow=ds.Tables[0].NewRow();
newRow["name"]=TextBox2.Text;
newRow["num"]=TextBox1.Text;
ds.Tables[0].Rows.Add(newRow);
FileStream fout;
fout=new FileStream(Server.MapPath(dataFile),FileMode.Open,FileAccess.Write,FileShare.ReadWrite);
ds.WriteXml(fout,XmlWriteMode.IgnoreSchema);
fout.Close();
运行后提示“XmlException:根级别上的数据无效“。
string dataFile="db.xml";
FileStream fin;
fin=new FileStream(Server.MapPath(dataFile),FileMode.Open,FileAccess.Read,FileShare.ReadWrite);
DataSet ds=new DataSet();
ds.ReadXml(fin);
fin.Close();
DataRow newRow=ds.Tables[0].NewRow();
newRow["name"]=TextBox2.Text;
newRow["num"]=TextBox1.Text;
ds.Tables[0].Rows.Add(newRow);
FileStream fout;
fout=new FileStream(Server.MapPath(dataFile),FileMode.Open,FileAccess.Write,FileShare.ReadWrite);
ds.WriteXml(fout,XmlWriteMode.IgnoreSchema);
fout.Close();
运行后提示“XmlException:根级别上的数据无效“。
这样schema就丢失了,当然无法读啦解决方案:
方法1 用writeschema写出schema
方法2 writexml使用XmlWriteMode.writeschema
ds.ReadXml(Server.MapPath("db.xml"));ds.WriteXml(Server.MapPath("db.xml"),XmlWriteMode.IgnoreSchema);