文件“D:\Data\xml\GetData.xml”正由另一进程使用,因此该进程无法访问该文件。

HarleyTung 2010-10-08 10:33:01
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中。谢谢!
...全文
409 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
HarleyTung 2010-10-08
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 kongwei521 的回复:]
dt.Clear();
dt.Dispose(); 清除释放一下然后再执行下一步
[/Quote]

这样不行。
蝶恋花雨 2010-10-08
  • 打赏
  • 举报
回复
dt.Clear();
dt.Dispose(); 清除释放一下然后再执行下一步
chazikai24 2010-10-08
  • 打赏
  • 举报
回复
参考这个http://blog.csdn.net/mengxj85/archive/2008/09/30/3005557.aspx
HarleyTung 2010-10-08
  • 打赏
  • 举报
回复
求助改用filestream 和 datatable 读取写入方法的代码。万分感谢!
fangxiaofelix 2010-10-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wanghui0380 的回复:]
不要直接使用ReadXml读取和写入

改用filestream 读取后,传递给datatable(使用流是因为在开启流的时候可以声明文件是否可以并发读写)
[/Quote]
+1
int64 2010-10-08
  • 打赏
  • 举报
回复
我以前做过,和楼主方法一样的,一个是write,
一个是read,没有出现打不开,
可能还是你哪里设置的问题吧,
文件夹的权限等。
HarleyTung 2010-10-08
  • 打赏
  • 举报
回复
请给我代码,谢谢!
t20100504t 2010-10-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wanghui0380 的回复:]
不要直接使用ReadXml读取和写入

改用filestream 读取后,传递给datatable(使用流是因为在开启流的时候可以声明文件是否可以并发读写)
[/Quote]+1
HarleyTung 2010-10-08
  • 打赏
  • 举报
回复
给我个例子好吗?感谢!
HarleyTung 2010-10-08
  • 打赏
  • 举报
回复
能不能给个读取关闭的例子?谢谢!
wanghui0380 2010-10-08
  • 打赏
  • 举报
回复
不要直接使用ReadXml读取和写入

改用filestream 读取后,传递给datatable(使用流是因为在开启流的时候可以声明文件是否可以并发读写)
lgz_asp_net 2010-10-08
  • 打赏
  • 举报
回复
是你上面写的时候没关闭,读的时候才会提示正由另一进程使用,这你应该懂的
Only_You_forver 2010-10-08
  • 打赏
  • 举报
回复
写入后没释放对此文件的操作
rwm5366745 2010-10-08
  • 打赏
  • 举报
回复
看看GetData.xml 这个文件有没有打开
加油馒头 2010-10-08
  • 打赏
  • 举报
回复
。。
new FileStream("",FileMode.Open,FileAccess.Write;

看下构造函数里,有没有权限的设置
wapdos 2010-10-08
  • 打赏
  • 举报
回复
楼主试试 用dataset读取,再放到datatable里面

DataSet myDs = new DataSet();
myDs.ReadXml("文件路径");
DataTable myDt = myDs.Tables[0];


http://wenku.baidu.com/view/513c351b6bd97f192279e933.html
LutzMark 2010-10-08
  • 打赏
  • 举报
回复
等你的程序写完了再读,因为其他进程对该文件没写完所以报IO操作异常
可以用信号量或者数据库数据存储状态值判断程序有没写完

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧