VB.NET 2010 Express / Dataview проблемы с XML - PullRequest
0 голосов
/ 11 мая 2011

Я студент кооператива, изучающий vb.net, и у меня есть проект, который извлекает данные из XML-файла в рамках программы (на основе выбора, сделанного из комбинированных окон), а также рассчитывает и отображает цены.

Мой XML выглядит следующим образом:
<.Root>
.... <. Процессы>
........ <. Процесс> 12345 <./ Процесс>
........ <. 12345Material_Process> Этот процесс <./ 12345Material_Process>
........ <. Rate> 20 <./ Rate>
........ <.Type> Азот <./ Тип>
........ <. Dia> 0,125 <./ Dia>
.
.
.
... <./ Процессы>
.... <. Машины>
........ <. Машина> AB12345
........ <. Machine_Type> 12345 4000 <./Machine_Type>
........ <. AB12345Bed_Size> 4000 <./ AB12345Bed_Size>
........ <. Base_Price> 831,00 $ <./ Base_Price>
.
.
.
.... <./ Машины>
<./ Root>
* Периоды для отображения (Не могу понять, как отобразить код XML, я новенькийс кодом!)

У меня есть один комбинированный список, который загружает данные из набора процессовction просто отлично, но затем другой использует тот же метод и получает ошибку «IndexOutOfRange» или «Column AB12345Bed_Size Not Found», хотя я использую один и тот же метод для обоих.Для «Процессов» я использую DataView.Sort на «<12345Material_Process>», который отражает выбранный элемент в выпадающем списке.Программа извлекает эту строку без проблем.Вот код, который вызывает у меня проблему:

   Dim xmlFile As XmlReader    
   xmlFile = XmlReader.Create("File.xml", New XmlReaderSettings())  
   Dim ds As New DataSet  
   Dim dv As DataView  
   ds.ReadXml(xmlFile)  

   dv = New DataView(ds.Tables(0))
   dv.Sort = strName & "Bed_Size"
   Dim index As Integer = dv.Find(cmbSize.SelectedItem)  

Я прочитал msdn и попытался разобраться в этом, а также поиска по многим форумам и примерам.
Любая помощьС благодарностью.

1 Ответ

0 голосов
/ 12 мая 2011

Так что, очевидно, я не очень хорошо знаю XML. Я переименовал теги <.Machines> в «<.Processes>», и теперь это работает. Теперь, когда я думаю об этом, у меня была похожая проблема раньше.
Так что, думаю, мне лучше записаться на следующий семестр на следующий срок!

...