【发布时间】:2019-02-27 05:48:44
【问题描述】:
更新 谢谢 vlam,我现在按照你的建议写信给 Stream,我得到了一个 XML 文件,没有更多错误,我的 XML 文件只有这个,没有数据,
<?xml version="1.0"?>
<RoboDataSet/>
为什么我没有数据?
我在表单上有一个 datagridview 和一个数据集。表单打开,我在前 2 行中输入数据,然后单击添加到表单中的写入 XML 按钮。按钮和 WriteXML 的代码在这里。它创建一个文件,该文件是空的。但是当它尝试执行 RoboDataSet.WriteXml(filename) 命令时,我得到一个错误。
在 DataGridView 中输入数据后,是否保存在 DataGridView 和 DataSet 中?
我有一个消息框,显示我们有数据,所以我相信我输入的数据在数据集中。然后我单步执行代码,我看到在 c:\data 中创建了一个文件,然后在 RoboDataSet.WriteXml(filename) 命令上出现此错误;
那么几个问题,为什么我得到了正在使用的错误,它是试图写xml的同一个过程,对吗?
根据我看到的 MS 示例,我尝试了 2 种不同的方法,
Example 1
Dim stream As New System.IO.FileStream _
(filename, System.IO.FileMode.Create)
thisDataSet.WriteXml(stream)
Example 2
Dim filename As String = "XmlDoc.xml"
thisDataSet.WriteXml(filename)
这是我的代码不起作用;
Private Sub WriteXml_Click(sender As Object, e As EventArgs) Handles WriteXml.Click
WriteXmlToFile(RoboDataSet)
End Sub
Private Sub WriteXmlToFile(RoboDataSet As DataSet)
If RoboDataSet Is Nothing Then
MessageBox.Show("dataset empty")
Else
MessageBox.Show("We have data")
End If
Dim filename As String = "c:\data\write4.xml"
Dim Stream As New System.IO.FileStream _
(filename, System.IO.FileMode.Create)
RoboDataSet.WriteXml(filename)
End Sub
任何帮助都会很棒,谢谢
谢谢 vlam,我现在按照你的建议写信给 Stream,我得到一个 XML 文件,没有更多错误,我的 XML 文件只有这个,没有数据,
为什么我没有数据?
【问题讨论】:
-
您将
.WriteXML(Stream)重载与.WriteXML(String) Either will work but when you created a stream, the stream is busy using the created file. So, when you tried to use the.WriteXML(String)` 混合使用,它将失败。