D:\Data\xml\GetData.xml这个文件是一个c#程序在实时更新的,更新的代码如下:
dt.WriteXml(xmlGetData, XmlWriteMode.WriteSchema);
然后我再另外个程序执行
DataTable dt = new DataTable();
dt.ReadXml(xmlGetData);
报错:
文件“D:\Data\xml\GetData.xml”正由另一进程使用,因此该进程无法访问该文件。我感觉是没关闭造成的,但是不知道是读取没关闭还是写入没关闭,请大家帮忙看下要如何修改才能不报这个错,
写入就是把DataTable生成XML 读取就是把XML读取到DataTable中。谢谢!

解决方案 »

  1.   

    看看GetData.xml 这个文件有没有打开
      

  2.   

    不要直接使用ReadXml读取和写入改用filestream 读取后,传递给datatable(使用流是因为在开启流的时候可以声明文件是否可以并发读写)
      

  3.   

    我以前做过,和楼主方法一样的,一个是write,
    一个是read,没有出现打不开,
    可能还是你哪里设置的问题吧,
    文件夹的权限等。
      

  4.   

    求助改用filestream 和 datatable 读取写入方法的代码。万分感谢!
      

  5.   

    参考这个http://blog.csdn.net/mengxj85/archive/2008/09/30/3005557.aspx
      

  6.   

       dt.Clear();
       dt.Dispose(); 清除释放一下然后再执行下一步
      

  7.   

    楼主试试 用dataset读取,再放到datatable里面DataSet myDs = new DataSet();
                myDs.ReadXml("文件路径");
                DataTable myDt = myDs.Tables[0];
    http://wenku.baidu.com/view/513c351b6bd97f192279e933.html
      

  8.   

    。。 
    new FileStream("",FileMode.Open,FileAccess.Write;看下构造函数里,有没有权限的设置