这问题郁闷我两天了,也不知道是我程序写的有问题还是vs2005有问题!我用的是GridView绑定数据
下面是我写的代码,用来删除xml里的一行数据!可是不管用哪种方法删除行都报同一个错,只要删除的不是数据绑定显示的哪个xml就没问题!就能正确删除,这是怎么回事!这是我的出错信息说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.IO.IOException: 文件“G:\WZ tool\tree\App_Data\DB\db.xml”正由另一进程使用,因此该进程无法访问该文件。这是我的xml
<?xml version="1.0" encoding="utf-8"?>
<infor>
  <Student>
    <id>1</id>
  <name>路人甲</name> />
    <sex>男</sex>/>
    <age>24</age>
  </Student>
<Student>
<id>2</id>
<name>认不得</name> />
<sex>男</sex>/>
<age>24</age>
</Student>
</infor>///////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////第一种删除方法////////////////////////////////////
    protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {        
        string Path = ConfigurationManager.AppSettings["MapPath"].ToString();
        StreamReader sr = new StreamReader(Path);
        DataSet ds = new DataSet();
        ds.ReadXml(sr);
        sr.Dispose ();                 //释放Stream资源,
        ds.Tables[0].Rows.RemoveAt(e.RowIndex);
        ds.AcceptChanges();
        StreamWriter sw = new StreamWriter(Path);//执行删除在这儿报错
        ds.WriteXml(sw);
        sw.Close();
   }
////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////第二种删除方法////////////////////////////////////////
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        string Path = ConfigurationManager.AppSettings["MapPath"].ToString();//xml存放路径
        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.Load(Path);
        XmlNode root = xmlDoc.SelectSingleNode("infor");
        XmlNodeList xnl = root.ChildNodes;
        foreach (XmlNode xn in xnl)
        {
            if (xn.SelectSingleNode("id").InnerText == "1")
            {
                root.RemoveAll();
                xmlDoc.Save(Path);//执行删除在这儿报错
            }
        }
    }
///////////////////////////////////////////////////////////////////////////
这是我的Page_Load方法
    protected void Page_Load(object sender, EventArgs e)
    {
        string Path = ConfigurationManager.AppSettings["MapPath"].ToString();
        StreamReader sr = new StreamReader(Path);
        DataSet ds = new DataSet();
        ds.ReadXml(sr);
        sr.Dispose();
        GridView1.DataSource = ds.Tables[0];
        GridView1.DataBind();
       
    }
//////////////////////////////////////////////////////////////////