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

Считывание данных из XML файла их сложение и вывод в TextBox

14.02.2019, 19:08. Показов 2147. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
public partial class Form2 : Form
 
    {
        private readonly string TemplateFileName = @"C:/Users/Oberleutnant/Desktop/Reports/template.docx";
        XDocument doc;
        public Form2()
        {
            InitializeComponent();
            doc = XDocument.Load("C:/Users/Oberleutnant/Desktop/Курсовая/Курсовая/WindowsFormsApp1/WindowsFormsApp1/XMLFile1.xml");
            IEnumerable<XElement> elements = doc.XPathSelectElements("/SpareParts/SpareEngine/SpareName");
            foreach (XElement el in elements)
            checkedListBox1.Items.Add(el.Value.Trim());
        }
        private void checkedListBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (checkedListBox1.SelectedIndex != -1)
            {
                IEnumerable<XElement> description = from node in doc.Element("SpareParts").Elements("SpareEngine")
                                                    where node.Element("SpareName").Value.Trim() == checkedListBox1.SelectedItem.ToString()
                                                    select node;
                if (description.Count() == 0)
                    textBox10.Clear();
                else
                    textBox10.Text = description.First().Element("Price").Value.Trim();
            }
            else
                textBox10.Clear();
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
<SpareParts>
   <SpareEngine>
    <SpareName>Ремень ГРМ</SpareName>    
    <Price>1500</Price>    
  </SpareEngine>
  <SpareEngine>
    <SpareName>Приводной ремень</SpareName>
    <Price>600</Price>
  </SpareEngine>
  <SpareEngine>
    <SpareName>Натяжной ролик</SpareName>
    <Price>800</Price>
  </SpareEngine>
  <SpareEngine>
    <SpareName>Воздушный фильтр</SpareName>
    <Price>500</Price>
  </SpareEngine>
  <SpareEngine>
    <SpareName>Топливный фильтр</SpareName>
    <Price>750</Price>
  </SpareEngine>
  <SparePodveska>
    <SpareName>Стойка стабилизатора</SpareName>
    <Price>500</Price>
  </SparePodveska>
  <SparePodveska>
    <SpareName>Амортизатор</SpareName>
    <Price>2000</Price>
  </SparePodveska>
  <SpareElektrika>
    <SpareName>Электронный блок управления двигателем</SpareName>
    <Price>4500</Price>
  </SpareElektrika>
  <SpareElektrika>
    <SpareName>Датчик расхода воздуха</SpareName>
    <Price>1500</Price>
  </SpareElektrika>
</SpareParts>
Есть такой код для считывания из XML в checkedListBox, но никак не могу сложить значения из Price на вывод их в TextBox'e.
По итогу должен получится общий ценник запчастей. В шарпах новичок, поэтому прошу помощи.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.02.2019, 19:08
Ответы с готовыми решениями:

Считывание данных с XML файла
Необходимо считать с XML файла данные. &lt;file&gt; &lt;Plane number=&quot;1&quot;&gt; &lt;x&gt;805&lt;/x&gt; &lt;y&gt;745&lt;/y&gt; &lt;z&gt;1&lt;/z&gt; ...

Считывание из XML файла в базу данных
Как из XML файла считывать данные и записывать в БД? Вот мой XML файл, название fortest.xml: &lt;РеестрИпотечныхЦенныхБумаг...

Вывод данных из XML в TextBox через ListBox
Всё хорошо работает но есть пару но... Как сделать что бы при выборе элемента из listbox данные из xml отправлялись в textbox name в 1 ...

6
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
15.02.2019, 11:48
полагаю, у тебя в текстбокс вообще ничего не выводит ? что выводит твой запрос description?
0
0 / 0 / 0
Регистрация: 14.02.2019
Сообщений: 4
15.02.2019, 12:23  [ТС]
Несколько затупил и не заметил этого факта, действительно не выводит. Должен был выводить значение Price из XML файла.
Вообще задача стоит создать небольшой каталог запчастей и выбором цены к ним. Может быть мне стоит вообще взять другой способ? Пытался с SQL локальной базой, но почему-то багнулись библиотеки и VS их попросту не видит, а возможности перекачать с мобильного интернета нет.
0
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
15.02.2019, 16:04
ты хочешь выбрать несколько SpareName, и чтобы по ним подбилась общая Price, правильно понимаю?
0
0 / 0 / 0
Регистрация: 14.02.2019
Сообщений: 4
15.02.2019, 16:30  [ТС]
Да. Например в checkedListBox'e отметить несколько позиций и получить сложенное значение их Price в textBox'e.
0
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
18.02.2019, 10:55
Oberleutnant71, объяви переменную на уровне класса
C#
1
int summa = 0;
потом в свой метод вместо
C#
1
  textBox10.Text = description.First().Element("Price").Value.Trim();
напиши так
C#
1
2
3
 int price = Convert.ToInt32(description.FirstOrDefault().Element("Price").Value.Trim());             
                    summa += price; 
                    textBox1.Text = summa.ToString();
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
18.02.2019, 12:58
Цитата Сообщение от Oberleutnant71 Посмотреть сообщение
никак не могу сложить значения из Price на вывод их в TextBox'e.
А зачем постоянно работать с XML?
Используйте его исключительно для хранения, а в коде работайте с объектами — жизнь проще будет.
C#
1
2
3
4
5
public class SpareEngine
{
    public string SpareName { get; set; }
    public decimal Price { get; set; }
}
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
public Form2()
{
    var overrides = new XmlAttributeOverrides();
    overrides.Add(typeof(SpareEngine[]), new XmlAttributes() { XmlRoot = new XmlRootAttribute("SpareParts") });
 
    var serializer = new XmlSerializer(typeof(SpareEngine[]), overrides);
    SpareEngine[] parts;
    using (var stream = File.OpenRead("C:/Users/Oberleutnant/Desktop/Курсовая/Курсовая/WindowsFormsApp1/WindowsFormsApp1/XMLFile1.xml"))
        parts = serializer.Deserialize(stream) as SpareEngine[];
 
    checkedListBox1.DataSource = parts;
    checkedListBox1.DisplayMember = nameof(SpareEngine.SpareName);
}
 
private void checkedListBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    var list = sender as CheckedListBox;
    if (list == null)
        textBox1.Clear();
    else
    {
        var part = list.SelectedItem as SpareEngine;
        textBox1.Text = part.Price.ToString();
    }
}
А дальше если надо сложить все ценники, достаточно пройтись циклом по элементам и тупо их складывать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.02.2019, 12:58
Помогаю со студенческими работами здесь

Вывод из XML файла в textbox на основании выбора в listbox
Есть xml файл: &lt;МатеринскиеПлаты&gt; &lt;плата&gt; &lt;производитель&gt;Biostar&lt;/производитель&gt; &lt;сокет&gt;AM2+&lt;/сокет&gt; ...

Считывание данных из файла и вывод их в консоль
Всем доброго времени суток. Прошу помощи в работе - Разработать программу, считывающую данные из файла и выводящую их в консоль на...

Выборка из xml файла. Загрузка этих данных в TextBox по условию
Прошу помощи в XPath запросе к XML. вот xml &lt;?xml version=&quot;1.0&quot; standalone=&quot;yes&quot;?&gt; &lt;NewDataSet&gt; &lt;Table&gt; ...

ТЕСТ - считывание данных из файла, вывод результатов тестирования
Зарание СПАСИБО!!! парни и девушки помогите пожалуйста очень нужно... нужна небольшая программа написаная на с++ builder или delphi...

Вывод данных из файла xlsx в TextBox
Ребят,никак не могу додуматься до решения как сделать. Написал код по сохранению их текстбокса в документ эксель. Private Sub...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru