Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 27.02.2021
Сообщений: 5
WPF

При нажатии на кнопку рассчитывать сумму данных из вводимых внешних ключей

14.04.2021, 11:44. Показов 1739. Ответов 1

Студворк — интернет-сервис помощи студентам
Я делаю программу расчета для расчета питания. Не знаю как реализовать расчет суммы вводимых данных. Через Combobox я выбираю блюда и добавляю в БД. Во время добавления я хочу так же рассчитывать цену,белок(DishPrice,DishProtein...) и т.д. используя внешний ключ выбранных продуктов.

Так происходит добавление:
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
private void AddNewMenu_Click(object sender, RoutedEventArgs e)
        {
            using (MyDbContext db = new MyDbContext())
            {
                Dish dish = new Dish()
                {
                    NameDish = TextBoxNameDish.Text,
                    ProductId = Convert.ToInt32(ComboboxDishItem1.SelectedValue),
                    Product1Id = Convert.ToInt32(ComboboxDishItem2.SelectedValue),
                    Product2Id = Convert.ToInt32(ComboboxDishItem3.SelectedValue),
                    Product3Id = Convert.ToInt32(ComboboxDishItem4.SelectedValue),
                    Product4Id = Convert.ToInt32(ComboboxDishItem5.SelectedValue),
                    Product5Id = Convert.ToInt32(ComboboxDishItem6.SelectedValue),
                    Product6Id = Convert.ToInt32(ComboboxDishItem7.SelectedValue),
                    Product7Id = Convert.ToInt32(ComboboxDishItem8.SelectedValue),
                    Product8Id = Convert.ToInt32(ComboboxDishItem9.SelectedValue),
                    Product9Id = Convert.ToInt32(ComboboxDishItem10.SelectedValue),
                    Product10Id = Convert.ToInt32(ComboboxDishItem11.SelectedValue),
                    Product11Id = Convert.ToInt32(ComboboxDishItem12.SelectedValue), 
                    DishPrice = Convert.ToDouble(db.Dishes.Select(n => new { n.Product.Price + n.Product1.Price }))
                };
                    db.Dishes.Add(dish);
                    db.SaveChanges();
                    MessageBox.Show("Добавлено!");
                
            }
        }
Таблица Продуктов
C#
1
2
3
4
5
6
7
8
 public int Id { get; set; }
        public string NameProduct { get; set; }
        public double Price { get; set; }  
        public double? Protein { get; set; }
        public double? Fats { get; set; }
        public double? Carbohydrates { get; set; }
        public double? Calories { get; set; }
        public virtual ICollection<Dish> Dishes { 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
26
27
28
29
30
31
32
33
34
35
36
 public int Id { get; set; }
        public string NameDish { get; set; }
        public double? DishPrice { get; set; }
        public double? DishWeight { get; set; }
        public double? DishProtein { get; set; }
        public double? DishFats { get; set; }
        public double? DishCarbohydrates { get; set; }
        public double? DishCalories { get; set; }
       
        public int? ProductId { get; set; }
        public int? Product1Id { get; set; }
        public int? Product2Id { get; set; }
        public int? Product3Id { get; set; }
        public int? Product4Id { get; set; }
        public int? Product5Id { get; set; }
        public int? Product6Id { get; set; }
        public int? Product7Id { get; set; }
        public int? Product8Id { get; set; }
        public int? Product9Id { get; set; }
        public int? Product10Id { get; set; }
        public int? Product11Id { get; set; }
 
        public virtual Product Product { get; set; }
        public virtual Product Product1 { get; set; }
        public virtual Product Product2 { get; set; }
        public virtual Product Product3 { get; set; }
        public virtual Product Product4 { get; set; }
        public virtual Product Product5 { get; set; }
        public virtual Product Product6 { get; set; }
        public virtual Product Product7 { get; set; }
        public virtual Product Product8 { get; set; }
        public virtual Product Product9 { get; set; }
        public virtual Product Product10 { get; set; }
        public virtual Product Product11 { get; set; }
 
        public virtual ICollection<Menu> Menus { get; set; }
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.04.2021, 11:44
Ответы с готовыми решениями:

QDataWidgetMapper -> submit() - не работает при наличии внешних ключей
Добрый лень. Такой вопросик: есть некий диалог, с полями для заполнения и комбобоксом для выбора значения по внешнему ключу в таблице. ...

Select 2х внешних ключей на один общий PK при их разном значении
Доброго времени суток. Столкнулся с такой проблемой. есть таблица EMPLOYEES, в которой содержатся данные сотрудника ...

ВЫборка данных их бд при нажатии на кнопку
Здравствуйте ребята. Видел на форуме статью, в которой описывалось следующее: При нажатии на кнопку, происходила выборка данных с...

1
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
14.04.2021, 12:29
Лучший ответ Сообщение было отмечено YoungRenegade как решение

Решение

YoungRenegade, у вас не верная реализация схемы БД. Блюда отдельно, ингридиенты - отдельно. Связь многие ко многим.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.04.2021, 12:29
Помогаю со студенческими работами здесь

Обновление данных при нажатии на кнопку
Имеется код на обновление данных, но выдаёт ошибку на &quot;=&quot;.&quot;. Сам код private void button3_Click(object sender, EventArgs e) ...

Сохранение данных при нажатии на кнопку
Доброго времени суток, в jqvery новичек, столкнулся вот с какой проблемой: есть код &lt;html&gt; &lt;head&gt; &lt;script...

Ошибка при добавлении данных в БД при нажатии на кнопку
Пишу приложение для БД access на C#. Существует форма &quot;добавить&quot; на которой расположены text.box, checkbox и combobox , необходимо чтобы...

Запрос к базе данных при нажатии на кнопку
Помогите разобраться, пожалуйста. Суть дела такова: есть база MySQL c таблицей Autumn. в той же базе все таблицы Wordpress. ...

Сброс всех данных при нажатии на кнопку
Здравствуйте! У меня есть несколько Activity, одно из них - активити с настройками приложения, которое я создаю. В настройках я создал...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru