powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / xml в DataGridView
17 сообщений из 17, страница 1 из 1
xml в DataGridView
    #32957503
GreatValen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Please Help!

У меня есть файл xml:
<File>
<Inf>
<record name="" info="" description="">
<record name="" info="" description="">
...
<record name="" info="" description="">
<Inf>
</File>

Есть DataGridView, в нём созданы 3-столбца

Вопрос такой - как добавить атрибуты name, info, description в DataGridView???

Я знааю, что у DataSet есть метод ReadXml, но как мне им воспользоваться ума не приложу.

Заранее спасибо.
____________________________________________________________________________________
Если расширить двери восприятия и отбросить всё наностное, то все вещи предстанут такими, какие они есть на самом деле - Б Е С К О Н Е Ч Н Ы М И !!!
...
Рейтинг: 0 / 0
xml в DataGridView
    #32957533
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К сожелению нет файла .xml под рукой, но если вставить следующий код в проект VB 2005 Express, то ошибки не подчёркиваются, поэтому, думаю можно попробовать так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
        ' Create a new DataSet.
        Dim newDataSet As New Data.DataSet("New DataSet")
        ' Read the XML document back in. 
        ' Create new FileStream to read schema with.
        Dim fsReadXml As New System.IO.FileStream("c:\test.xml", System.IO.FileMode.Open)
        ' Create an XmlTextReader to read the file.
        Dim myXmlReader As New System.Xml.XmlTextReader(fsReadXml)
        ' Read the XML document into the DataSet.
        newDataSet.ReadXml(myXmlReader)
        ' Close the XmlTextReader
        myXmlReader.Close()
С вариантами конечно, вместо создания нового сета программным путём, можно попробовать использовать созданный визардом and etc.
...
Рейтинг: 0 / 0
xml в DataGridView
    #32957550
GreatValen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vladgrigК сожелению нет файла .xml под рукой, но если вставить следующий код в проект VB 2005 Express, то ошибки не подчёркиваются, поэтому, думаю можно попробовать так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
        ' Create a new DataSet.
        Dim newDataSet As New Data.DataSet("New DataSet")
        ' Read the XML document back in. 
        ' Create new FileStream to read schema with.
        Dim fsReadXml As New System.IO.FileStream("c:\test.xml", System.IO.FileMode.Open)
        ' Create an XmlTextReader to read the file.
        Dim myXmlReader As New System.Xml.XmlTextReader(fsReadXml)
        ' Read the XML document into the DataSet.
        newDataSet.ReadXml(myXmlReader)
        ' Close the XmlTextReader
        myXmlReader.Close()
С вариантами конечно, вместо создания нового сета программным путём, можно попробовать использовать созданный визардом and etc.

Ok. Но как в качестве данных для столбцов DataGiridView указать именно атрибуты name, ... (не поймёт же программа сама, что так надо сделать)?
...
Рейтинг: 0 / 0
xml в DataGridView
    #32957557
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Закинь сюда кусочек своего файла .xml (очень трудно разбираться без него родного).
P.S. Поищем варианты...
...
Рейтинг: 0 / 0
xml в DataGridView
    #32957571
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче, не надо файла, я и сам доехал, чего ты боишься. Попробуй так:
Код: plaintext
1.
2.
3.
        Dim m As New Data.DataSet
        m.ReadXml("путь к .xml", Data.XmlReadMode.Auto)
        DataGridView1.DataSource = m.Tables( 0 )
У меня сработало по мотивам твоего .xml
Код: plaintext
1.
2.
3.
4.
<DataSet1 xmlns="http://www.tempuri.org/DataSet1.xsd">
  <useradmin name="test" info="blabla"></useradmin>
  <useradmin name="test1" info="kvakva"></useradmin>
</DataSet1>
...
Рейтинг: 0 / 0
xml в DataGridView
    #32957676
GreatValen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vladgrigКороче, не надо файла, я и сам доехал, чего ты боишься. Попробуй так:
Код: plaintext
1.
2.
3.
        Dim m As New Data.DataSet
        m.ReadXml("путь к .xml", Data.XmlReadMode.Auto)
        DataGridView1.DataSource = m.Tables( 0 )
У меня сработало по мотивам твоего .xml
Код: plaintext
1.
2.
3.
4.
<DataSet1 xmlns="http://www.tempuri.org/DataSet1.xsd">
  <useradmin name="test" info="blabla"></useradmin>
  <useradmin name="test1" info="kvakva"></useradmin>
</DataSet1>


А DataSet1.xsd я откуда возьму? у меня DataSet создается программно, а не дизайнером.
...
Рейтинг: 0 / 0
xml в DataGridView
    #32957682
GreatValen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vladgrigКороче, не надо файла, я и сам доехал, чего ты боишься. Попробуй так:
Код: plaintext
1.
2.
3.
        Dim m As New Data.DataSet
        m.ReadXml("путь к .xml", Data.XmlReadMode.Auto)
        DataGridView1.DataSource = m.Tables( 0 )
У меня сработало по мотивам твоего .xml
Код: plaintext
1.
2.
3.
4.
<DataSet1 xmlns="http://www.tempuri.org/DataSet1.xsd">
  <useradmin name="test" info="blabla"></useradmin>
  <useradmin name="test1" info="kvakva"></useradmin>
</DataSet1>


Я ничего не писал в xml (я имею ввиду xmlns=...), но данные не "грузяться" в DataGridView, точннее в DataGridView создается нужно количество строк (соответствует количеству записей типа useradmin), но все они пустые, т.е. значения name info и description не читаются.
...
Рейтинг: 0 / 0
xml в DataGridView
    #32957718
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я думаю, без куска твоего XML всё же очень трудно вести беседу (и всё же в надежде на лучшее, высылаю тебе тестовый проект с тем XML, который я моделировал по твоим скудным данным).
P.S. Очень надеюсь что он у тебя откроется, т.к. написан на VB 2005 Express
...
Рейтинг: 0 / 0
xml в DataGridView
    #32957829
GreatValen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vladgrigЯ думаю, без куска твоего XML всё же очень трудно вести беседу (и всё же в надежде на лучшее, высылаю тебе тестовый проект с тем XML, который я моделировал по твоим скудным данным).
P.S. Очень надеюсь что он у тебя откроется, т.к. написан на VB 2005 Express

Пример моего xml файла, с 3-я записями, на самом деле, записей около 11-12 тысяч, но на то это и пример.

PS. Да в вашем примере колонки для DataGridView не созданы изначально, а у меня они уже созданы - их нужно только заполнить. (Да и я использую m.Table(2), а не m.Table(0) иначе создается только две "чистые" записи, причём одна из них это пустая строка в конце)
...
Рейтинг: 0 / 0
xml в DataGridView
    #32957846
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К сожалению, не знаю какая прога создавала твой xml (по правде говоря это и не важно), я сделал некоторые изменения для удобства (см. проект). Хотя, может тебе необходим файл в его первоночальном виде. Теперь по существу:

1. автор(Да и я использую m.Table(2), а не m.Table(0) иначе создается только две "чистые" записи, причём одна из них это пустая строка в конце)
Код: plaintext
1.
2.
3.
4.
<InfoSuite version="6.0">
     <PhDataBase version="1.0">
     </PhDataBase>
</InfoSuite>
Вот эти два узла в твоём xml, насколько я понимаю создают Table(0) и Table(1). Поэтому тебе приходится прибегать к вызову Table(2). Можешь вызывать свою таблу по имени "record" (см. проект), это решит проблему (если это можно считать проблемой ).

2. авторДа в вашем примере колонки для DataGridView не созданы изначально, а у меня они уже созданы - их нужно только заполнить.
Если существует такая необходимость (видимо для создания стиля колонок), то рекомендую посмотреть в сторону создания нужной таблы в сете с дальнейшим присвоением DataGridView1.DataSource и DataGridView1.DataMember сета и созданной в нём таблицы (я делал это визуально - что и тебе советую - сэкономишь кучу времени и избежишь явных ошибок и проблем). При таком раскладе колонки сами создадуться, а ты сможешь их просто откорректировать под свой вкус.

P.S. ИМХО - я, благодаря тебе изучил вопрос на 99% СПАСИБО!!! И, ещё, со мной можно разговаривать на ты (а то, я чувствую себя слишком важной персоной - а, это не правда). Разбери пример и, если будут вопросы, спрашивай...
...
Рейтинг: 0 / 0
xml в DataGridView
    #32958189
GreatValen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vladgrigК сожалению, не знаю какая прога создавала твой xml (по правде говоря это и не важно), я сделал некоторые изменения для удобства (см. проект). Хотя, может тебе необходим файл в его первоночальном виде. Теперь по существу:

1. автор(Да и я использую m.Table(2), а не m.Table(0) иначе создается только две "чистые" записи, причём одна из них это пустая строка в конце)
Код: plaintext
1.
2.
3.
4.
<InfoSuite version="6.0">
     <PhDataBase version="1.0">
     </PhDataBase>
</InfoSuite>
Вот эти два узла в твоём xml, насколько я понимаю создают Table(0) и Table(1). Поэтому тебе приходится прибегать к вызову Table(2). Можешь вызывать свою таблу по имени "record" (см. проект), это решит проблему (если это можно считать проблемой ).

2. авторДа в вашем примере колонки для DataGridView не созданы изначально, а у меня они уже созданы - их нужно только заполнить.
Если существует такая необходимость (видимо для создания стиля колонок), то рекомендую посмотреть в сторону создания нужной таблы в сете с дальнейшим присвоением DataGridView1.DataSource и DataGridView1.DataMember сета и созданной в нём таблицы (я делал это визуально - что и тебе советую - сэкономишь кучу времени и избежишь явных ошибок и проблем). При таком раскладе колонки сами создадуться, а ты сможешь их просто откорректировать под свой вкус.

P.S. ИМХО - я, благодаря тебе изучил вопрос на 99% СПАСИБО!!! И, ещё, со мной можно разговаривать на ты (а то, я чувствую себя слишком важной персоной - а, это не правда). Разбери пример и, если будут вопросы, спрашивай...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
<DXS>
     <InfoSuite version="6.0">
          <PhDataBase version="1.0">
               <...>
               ...
          </PhDataBase>
     </InfoSuite>
</DXS>

Такая структура необходима, в крайнем случае необходимо DXS, к этому узлу можно "прикрепить" атрибуты с других, но это нежелательно.
...
Рейтинг: 0 / 0
xml в DataGridView
    #32958229
GreatValen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я изменил xml файл:

Код: plaintext
1.
2.
3.
4.
5.
6.
<DXS NID="Ph" NIDVersion="6.0" PhDBVersion="1.0">
  <record name="Имя 1" Info="Инфо 3" description="Описание 1" />
  <record name="Имя 2" Info="Инфо 3" description="Описание 2" />
  <record name="Имя 3" Info="Инфо 3" description="Описание 3" />
  <record name="Имя 4" Info="Инфо 4" description="Описание 4" />
</DXS>

файл прочитался, но меня это совсем не радует, структура всётаки необходима старая.
____________________________________________________________________________________
Если расширить двери восприятия и отбросить всё наностное, то все вещи предстанут такими, какие они есть на самом деле - Б Е С К О Н Е Ч Н Ы М И !!!
...
Рейтинг: 0 / 0
xml в DataGridView
    #32958509
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извини, может я это зря - "но ты часом не прикалываешься???" Положи свой злополучный xml (такой какой он есть без всяких изменений с твоей структурой) в папку bin моего тестового проекта и попробуй запустить прогу проекта? У меня, например работает и с твоей старой структурой и с новой.
...
Рейтинг: 0 / 0
xml в DataGridView
    #32958743
GreatValen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vladgrigИзвини, может я это зря - "но ты часом не прикалываешься???" Положи свой злополучный xml (такой какой он есть без всяких изменений с твоей структурой) в папку bin моего тестового проекта и попробуй запустить прогу проекта? У меня, например работает и с твоей старой структурой и с новой.
Извини. Тот файл который я послал тебе с ним все ok, а вот файл заполненный у меня данными - нет, наверное проблема в нём, буду разбираться.

Большое спасибо за помощь.
...
Рейтинг: 0 / 0
xml в DataGridView
    #32958787
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Напоследок как вариант (навеяли ребята с топиком про validate xml)
Код: plaintext
1.
2.
3.
4.
        Dim m As New Xml.XmlTextReader("suite.xml")
        While m.Read
            If m.Name = "record" Then Debug.WriteLine(m.Item( 0 ) & m.Item( 1 ) & m.Item( 2 ))
        End While
Эти значения можешь уже вставлять куда душе угодно - они независимы и представляют собой простые строки прочитанные из атрибутов record.
...
Рейтинг: 0 / 0
xml в DataGridView
    #32958807
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автора вот файл заполненный у меня данными - нет, наверное проблема в нём, буду разбираться.
Проблема не в нем а в таблице DataSet1 я там присваивал кое какие значения колонкам - именно они и могут не совпадать (так например размер строки или значение может быть не string and etc.)
...
Рейтинг: 0 / 0
xml в DataGridView
    #32960681
GreatValen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vladgrig автора вот файл заполненный у меня данными - нет, наверное проблема в нём, буду разбираться.
Проблема не в нем а в таблице DataSet1 я там присваивал кое какие значения колонкам - именно они и могут не совпадать (так например размер строки или значение может быть не string and etc.)

Я это знаю, но и в файле была ошибка в самом начале, сейчас все Ok. Еще раз большое спасибо за помощь.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / xml в DataGridView
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]