Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 1
Регистрация: 05.02.2018
Сообщений: 18

Многоуровневый xml в DataSet и вывести в таблицу dataGridView1

11.06.2024, 19:31. Показов 599. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, проблемка значит с тем что не знаю как многоуровневую xml воткнуть в таблицу...
проблема если честно что не знаю как заставить dataSet видеть таблицы так как надо ... мне и подходит то как щяс работает НО хотелась бы более правильный код а то в comboBox1 выводится 6 таблиц ... а в 3 лишь данные Language RecordReagent и Record ... хотя это даже не таблицы хотелось бы узнать как сделать так чтобы RecordReagent и Record не считались за таблицы... и а все строки были в нужных таблицах выбирая какую показать таблицу через comboBox1.
а если предоставите пример как сделать данные 3 таблицы отдельное спасибо

предоставил код и xml



C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
    DataSet dataSet = new DataSet();
    private void button1_Click_1(object sender, EventArgs e)
    {
        OpenFileDialog ofd = new OpenFileDialog();
        ofd.Filter = "XML|*.xml";
        if (ofd.ShowDialog() == DialogResult.OK)
        {
            try
            {
                XmlReader xmlFile = XmlReader.Create(ofd.FileName, new XmlReaderSettings());
                dataSet.ReadXml(xmlFile);
                dataGridView1.DataSource = dataSet.Tables;
                xmlFile.Close();
                comboBox1.DataSource = (from DataTable table in dataSet.Tables select table).ToList();
                comboBox1.DisplayMember = "TableName";
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
        }
    }
 
    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        dataGridView1.DataSource = dataSet.Tables[comboBox1.SelectedIndex].DefaultView;
    }
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?xml version="1.0" encoding="utf-8"?>
<Language xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Name>English</Name>
  <Code>EN</Code>
  <Font>font_english</Font>
  <Reagents>
    <RecordReagent>
      <Key>Flour</Key>
      <Value>Flour</Value>
      <Unit>g</Unit>
    </RecordReagent>
    <RecordReagent>
      <Key>Milk</Key>
      <Value>Milk</Value>
      <Unit>ml</Unit>
    </RecordReagent>
  </Reagents>
  <Gases>
    <Record>
      <Key>Oxygen</Key>
      <Value>Oxygen</Value>
    </Record>
    <Record>
      <Key>CarbonDioxide</Key>
      <Value>Carbon Dioxide</Value>
    </Record>
    <Record>
      <Key>Nitrogen</Key>
      <Value>Nitrogen</Value>
    </Record>
  </Gases>
  <Actions>
    <Record>
      <Key>Reload</Key>
      <Value>Reload</Value>
    </Record>
  </Actions>
  <ScreenSpaceToolTips />
  <HelpPage />
  <ThingPageOverride />
  <HomePageButtonsOverride />
  <GameTip />
</Language>

Name Code Font tableKeyValueUnitScreenSpaceToolTipsHelpPageThingPageOverrideHomePageButtonsOverrideGameTip
English EN font_english ReagentsFlourFlourg     
English EN font_english ReagentsMilkMilkml     
English ENfont_english GasesOxygenOxygen      
English ENfont_english GasesCarbonDioxideCarbonDioxide      
English ENfont_english GasesNitrogenNitrogen      
English ENfont_english ActionsReloadReload      

tableKeyValueUnit
ReagentsFlourFlourg
ReagentsMilkMilkml
GasesOxygenOxygen 
GasesCarbonDioxideCarbonDioxide 
GasesNitrogenNitrogen 
ActionsReloadReload 

KeyValueUnit
FlourFlourg
MilkMilkml
OxygenOxygen 
CarbonDioxideCarbonDioxide 
NitrogenNitrogen 
ReloadReload 
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.06.2024, 19:31
Ответы с готовыми решениями:

c# dataGridView1 & dataSet
string query = &quot;SELECT * FROM orders&quot;; if (DB.OpenConnection() == true) { adapter...

Как вывести на веб страницу таблицу из DataSet?
Доброго времени суток. Есть таблица в DataSet, ее надо как то отобразить на веб странице в приложении на ASP .NET MVC, подскажите как...

Передача данных из таблицы одной dataSet в таблицу другой dataSet
Здравствуйте. У меня возникла ситуация когда необходимо передать данные из таблицы одной dataset в таблицу другой dataset, которая хранит...

3
0 / 0 / 1
Регистрация: 05.02.2018
Сообщений: 18
14.06.2024, 20:10  [ТС]
вроде то что я хотел узнал с помощью этого кода ...
НОООООООООООО газ Gases и Actions имеюд одинаковую таблицу Record ... таблицы Record одинаковые из за этого ПОЛНАЯ ЖОПА
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
using System.ComponentModel;
using System.Data;
using System.Xml;
 
namespace WinFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        DataSet dataSet = new DataSet("Language");
 
        private void button1_Click_1(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.Filter = "XML|*.xml";
            if (ofd.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    List<string> listTableName= new List<string>();
 
 
                    XmlReader xmlFile = XmlReader.Create(ofd.FileName, new XmlReaderSettings());
                    dataSet.ReadXml(xmlFile);
 
                        for (int i = 0; i <= dataSet.Tables.Count-1; i++) 
                            if (dataSet.Tables[i].ChildRelations.Count != 0)
                            comboBox1.Items.Add(dataSet.Tables[i].TableName) ; 
                    dataGridView1.DataSource = dataSet.Tables[1].ChildRelations[0] ;{System.Data.DataRelationCollection.DataTableRelationCollection}
                    xmlFile.Close();
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex);
                }
            }
        }
 
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (comboBox1.TabIndex==0)
                dataGridView1.DataSource = dataSet.Tables[comboBox1.TabIndex].DefaultView;
            else
            dataGridView1.DataSource = dataSet.Tables[comboBox1.Text].ChildRelations[0].ChildTable;
        }
 
    }
}
0
2287 / 1603 / 400
Регистрация: 26.06.2017
Сообщений: 4,748
Записей в блоге: 1
17.06.2024, 22:00
difya, не совсем понятно чего вы хотите достичь, можете пояснить как-то иначе на простом примере?

Добавлено через 44 секунды
XML-файл формируете вы сами или он даётся "как есть"?

Добавлено через 8 минут
Может быть имеет смысл десериализовать XML в списки объектов Reagents, Gases и Actions, а остальное просто игнорировать?
0
0 / 0 / 1
Регистрация: 05.02.2018
Сообщений: 18
23.06.2024, 15:22  [ТС]
Uswer, Уже решил мне вот это нужно было ... точнее вывод то что этот код даст... Но хз можно было иначе... это что то типа костыля типа постзапрос )))

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        
 
        if (comboBox1.SelectedIndex == 0)
            dataGridView1.DataSource = dataSet.Tables[comboBox1.SelectedIndex].DefaultView;
        else
        { 
 
            dataGridView1.DataSource = dataSet.Tables[comboBox1.SelectedItem.ToString()].ChildRelations[0].ChildTable.AsEnumerable().Where(o => o.Field<int?>(comboBox1.SelectedItem.ToString()+ "_Id") == 0).AsDataView();
 
        }
 
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.06.2024, 15:22
Помогаю со студенческими работами здесь

Вывести данные в таблицу из xml файла. - Анализ XML файла, выгружаемого программой SPU_ORB.
Есть такой файлик с расширением .xml (из программы spy_orb) в нем много строк, но нам нужно вытащить только суммы и запихнуть в таблицу,...

combobox - xml, из DataGridView1 в DataGridView2
Добрый день ув. форумчане , 2 вопроса. 1) Как из DataGridView1 перенести выбранный элемент в DataGridView2 , DataGridView1 берёт...

combobox - xml, из DataGridView1 в DataGridView2
Добрый день ув. форумчане , 2 вопроса. 1) Как из DataGridView1 перенести выбранный элемент в DataGridView2 , DataGridView1 берёт...

Преобразовать многоуровневый XML для отображения в таблице и последующей фильтрации
Доброго времени суток. Имеется расположенный на сервере примерно такой XML: &lt;devices&gt; &lt;device&gt; ...

Нужно вывести данные в таблицу из xml файла
Есть такой файлик с расширением .xml (из программы spy_orb) в нем много строк, но нам нужно вытащить только суммы и запихнуть в таблицу,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru