Я не уверен, возможно ли это, но вот что я хочу сделать: я создал строго типизированный набор данных StrTypDS
, используя конструктор наборов данных в Visual Studio. Я также создал пустой XML-файл и добавил его в свой проект в качестве ресурса, чтобы к нему можно было получить доступ через Properties.Resources.xmlData. Я бы хотел прочитать XML-файл и посмотреть, совпадают ли какие-либо данные со схемой моего строго типизированного набора данных. Если есть совпадающие данные, я хочу прочитать их в наборе данных, чтобы я мог их обработать. Если совпадающих данных нет, я хочу записать схему в XML-файл, чтобы я мог хранить там строго типизированные данные для будущих чтений. Как это сделать проще всего?
xml и строго типизированные наборы данных с помощью конструктора наборов данных
Ответы (1)
Вы не можете писать в ресурс, потому что файл ресурсов скомпилирован в сборку.
Чтобы попытаться прочитать XML-файлы в вашем строго типизированном наборе данных, используйте этот пример (VB.NET) ...
Я создал два типизированных набора данных, ds1 и ds2 с разными схемами. Я выписываю два образца файлов данных xml без их схем. Затем я пытаюсь прочитать каждый XML-файл в папке, чтобы найти XML-файл, который соответствует моему целевому строго типизированному набору данных. Если в моем целевом наборе данных есть данные после попытки чтения, схема соответствует.
Private Const InputFolder As String = "C:\xmlinputdata\"
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
WriteTestXML()
For Each s In IO.Directory.GetFiles(InputFolder, "*.xml")
Dim dsTarget As New ds1
dsTarget.ReadXml(s, Data.XmlReadMode.IgnoreSchema)
If DatasetHasData(dsTarget) Then
MsgBox(dsTarget.GetXml)
End If
Next
End Sub
Private Function DatasetHasData(ByVal ds As Data.DataSet) As Boolean
For Each dt As Data.DataTable In ds.Tables
If dt.Rows.Count > 0 Then
Return True
End If
Next
Return False
End Function
Private Sub WriteTestXML()
Dim x As New ds1
x.dt1.Adddt1Row("A", "B")
x.dt1.Adddt1Row("C", "D")
x.WriteXml(InputFolder & "ds1.xml", Data.XmlWriteMode.IgnoreSchema)
Dim y As New ds2
With y.dt2
.Adddt2Row(1, 2, 3)
.Adddt2Row(4, 5, 6)
End With
y.WriteXml(InputFolder & "ds2.xml", Data.XmlWriteMode.IgnoreSchema)
End Sub
person
Carter Medlin
schedule
20.07.2010