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

Сохранение данных

24.05.2014, 16:17. Показов 1041. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят, помогите пожалуйста. Пишу программу. Нужно, чтобы данные, полученные после расчета по формулам сохранялись в Базу данных. Там в базе данных таблица есть, называется "деревоРешений", а сохранятся они должны из textBox1 - textBox4. Обработчик для сохранения данных есть (в самом конце кода), но он почему-то не работает. Может что-то неправильно делаю. Помогите, пожалуста. Вот все необходимые данные: деревья решений.rar
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
 public partial class ГлавнаяФорма : Form
    {
        public ГлавнаяФорма()
        {
            InitializeComponent();
        } 
 
        private void ГлавнаяФорма_Load(object sender, EventArgs e)
        {
            // TODO: данная строка кода позволяет загрузить данные в таблицу "dataSet1.ДеревоРешений". При необходимости она может быть перемещена или удалена.
            this.деревоРешенийTableAdapter.Fill(this.dataSet1.ДеревоРешений);
            // TODO: данная строка кода позволяет загрузить данные в таблицу "dataSet1.ВариантыЗадач". При необходимости она может быть перемещена или удалена.
            this.вариантыЗадачTableAdapter.Fill(this.dataSet1.ВариантыЗадач);
 
        }
 
        private void toolStripBtnCalculate_Click(object sender, EventArgs e)
        {
            double e1;
            double e2;
            double e3;
            double e4;
            double p1;
            double p2;
            double p3;
            double q1;
            double q2;
            double q3;
            double d1;
            double d2;
            double d3;
            double t1;
            double t2;
            double s1;
            double s2;
            double u1;
            double max;
            try
            {
                p1 = Convert.ToDouble(Р1NumericUpDown.Text);
                p2 = Convert.ToDouble(Р2NumericUpDown.Text);
                q1 = Convert.ToDouble(Q1NumericUpDown.Text);
                u1 = Convert.ToDouble(U1NumericUpDown.Text);
                t1 = Convert.ToDouble(t1NumericUpDown.Text);
                s1 = Convert.ToDouble(s1NumericUpDown.Text);
                d1 = Convert.ToDouble(D1NumericUpDown.Text);
                d2 = Convert.ToDouble(d2NumericUpDown.Text);
                q2 = Convert.ToDouble(Q2NumericUpDown.Text);
                d3 = Convert.ToDouble(D3NumericUpDown.Text);
                s2 = Convert.ToDouble(s2NumericUpDown.Text);
                p3 = Convert.ToDouble(Р3NumericUpDown.Text);
                q3 = Convert.ToDouble(Q3NumericUpDown.Text);
                t2 = Convert.ToDouble(t2NumericUpDown.Text);
                e1 = (p1 * d1 - q1 * u1) * t1 - s1;
                e2 = (p2 * d2 + q2 * d3) * t1 - s2;
                e3 = (p3 * d1 - q3 * u1) * t2 - s1;
                e4 = (p3 * d2 + q3 * d3) * t2 - s2;
                max = Math.Max(Math.Max(e1, e2), Math.Max(e3, e4));
                textBox1.Text = e1.ToString("n") + "  млн.руб";
                textBox2.Text = e2.ToString("n") + "  млн.руб";
                textBox3.Text = e3.ToString("n") + "  млн.руб";
                textBox4.Text = e4.ToString("n") + "  млн.руб";
                if (max == e1)
                {
                    textBox5.Text = "Нужно строить большой завод, выручка = " + max.ToString("n") + "  млн.руб";
                }
                if (max == e2)
                {
                    textBox5.Text = "Нужно строить маленький завод, выручка = " + max.ToString("n") + "  млн.руб";
                }
                if (max == e3)
                {
                    textBox5.Text = "Нужно строить большой завод через 1 год, выручка = " + max.ToString("n") + "  млн.руб";
                }
                if (e1 == e2 && e1 == e3 && e1 == e4)
                {
                   textBox5.Text = "Можно строить любой из заводов ";
                }
                if (e1<=0 && e2<=0 && e3<=0 && e4<=0)
                {
                  textBox5.Text = "Не строить никаких заводов!!! Потому что выручка <= 0 ";
                }
                if (max == e4)
                {
                    textBox5.Text = "Нужно строить маленький завод через 1 год, выручка = " + max.ToString("n") + "  млн.руб";
                }
            }
            catch
            {
                textBox1.Focus();
                textBox2.Focus();
                textBox3.Focus();
                textBox4.Focus();
                textBox5.Focus();
            }
        }
 
        private void toolStripBtnUndo_Click(object sender, EventArgs e)
        {
            {
          this.деревоРешенийBindingSource.CancelEdit(); 
            this.вариантыЗадачBindingSource.CancelEdit(); 
            this.dataSet1.RejectChanges();
          }
 
        }
 
        private void toolStripBtnClose_Click(object sender, EventArgs e)
        {
            this.деревоРешенийBindingSource.CancelEdit();
            this.вариантыЗадачBindingSource.CancelEdit();
            this.dataSet1.RejectChanges();
            this.Close();
 
            }
 
        private void вариантыЗадачBindingNavigatorSaveItem_Click(object sender, EventArgs e)
        {
            this.Validate();
            DataSetEndEdit();
            //this.Validate();
            //this.вариантыЗадачBindingSource.EndEdit();
            //this.tableAdapterManager.UpdateAll(this.dataSet1);
            if (!(CheckKodVariant(this.кодTextBox.Text))) return;
            try
            {
                this.вариантыЗадачTableAdapter.Update(this.dataSet1.ВариантыЗадач);
                this.деревоРешенийTableAdapter.Update(this.dataSet1.ДеревоРешений);
            }
            catch
            {
                MessageBox.Show("Не удалось сохранить данные! Не верный код или дублирование индексов!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        private Boolean CheckKodVariant(string KodVariant)
        {
            if ((KodVariant.Length == 0) || (KodVariant == "Введите код") || (DBNull.Value.Equals(KodVariant)))
            {
                MessageBox.Show("Не введен код варианта!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }
            return true;
        }
 
        private void DataSetEndEdit()
        {
            this.вариантыЗадачBindingSource.EndEdit();
            this.деревоРешенийBindingSource.EndEdit();
        }
 
        }
 
         }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.05.2014, 16:17
Ответы с готовыми решениями:

Сохранение данных из datagridview в базу данных под MS sql server 2012
Доброго времени суток. Делаю курсовую, и до этого момента думал, что самое сложное создать правильную модель данных, но оказалось...

Сохранение данных, добавленных в базу данных access
Помогите сделать сохранение добавленных данных в бд, при перезапуске программы Вот код бд: private void metroButton3_Click(object...

Сохранение данных в базу данных SQL Server
Есть база данных LocalDB с одной таблицей Notice. Так же есть две формы: одна с textBox и comboBox'ами для добавления данных, другая с...

14
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
24.05.2014, 20:39
lika-2607, в каком месте у вас данные из текстбоксов записываются в ваши таблицы? Сохранять то вы пытаетесь изменения в таблицах ...
0
1 / 1 / 0
Регистрация: 24.11.2013
Сообщений: 142
24.05.2014, 22:13  [ТС]
kodv, да это я пыталась по образцу составить, но там в образце, вроде как из GridWiew сохраняются, а мне из текстбокса надо. Вот этого я как раз-таки и не пойму.
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
25.05.2014, 04:50
lika-2607, вставить в метод ГлавнаяФорма_Load
C#
1
textBox1.DataBindings.Add("Text", деревоРешенийBindingSource, "поле1"); textBox2.DataBindings.Add("Text", деревоРешенийBindingSource, "поле2"); textBox3.DataBindings.Add("Text", деревоРешенийBindingSource, "поле3"); textBox4.DataBindings.Add("Text", деревоРешенийBindingSource, "поле4");
вместе поле1, поле2, поле3, поле4 вставите ваши названия ваших полей из таблицы. Если вам нужно, чтобы данные вставились в новую строку, то до того, как будет меняться значение в текстбоксах нужно выполнить
C#
1
деревоРешенийBindingSoutce.AddNew(;)
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
25.05.2014, 10:25
Твой архив не соответствует описанию. Из четырёх упоминаемых TextBox, вижу только два, и текст программы короче.
Binding числовых полей сделан через вкладку Bindings, а не программно, так что и остальные проще так же привязать.
0
1 / 1 / 0
Регистрация: 24.11.2013
Сообщений: 142
25.05.2014, 12:23  [ТС]
kodv, вот такое у меня появилось:
0
1 / 1 / 0
Регистрация: 24.11.2013
Сообщений: 142
25.05.2014, 12:25  [ТС]
Вот такие названия полей в таблице
0
1 / 1 / 0
Регистрация: 24.11.2013
Сообщений: 142
25.05.2014, 12:31  [ТС]
nmcf, а так?деревья решений2505.rar
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
25.05.2014, 12:44
lika-2607, похоже, вы уже через дизайнер привязали. Если это так, то данные строки не нужны. Ошибка говорит о том, что, что к данному свойству текстбокса уже существует привязка.
0
1 / 1 / 0
Регистрация: 24.11.2013
Сообщений: 142
25.05.2014, 14:08  [ТС]
kodv, это наверно из-за того, что я привязала текстбоксы через свойство Advanced. Я убрала эту привязку, и теперь ошибок по сохранению не выдает. Но теперь новый сюрприз появился, из-за кода в таблице.
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
25.05.2014, 14:28
lika-2607, это написанное вами сообщение, которое возникает при исключение во время обновления базы данных. Никакой полезной информации оно не несет. Если вы добавите к нему текст исключения, то можно будет понять, из-за чего оно возникло.
0
1 / 1 / 0
Регистрация: 24.11.2013
Сообщений: 142
25.05.2014, 16:49  [ТС]
kodv, а если удалить эту надпись, то данные будут сохранятся в базу данных?
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
25.05.2014, 18:00
lika-2607, нет. Есть причина, по которой данные не сохраняются. Причина находится в Exception.Message. В смысле, напишите так:
C#
1
2
3
4
5
6
7
8
9
 try
            {
                this.вариантыЗадачTableAdapter.Update(this.dataSet1.ВариантыЗадач);
                this.деревоРешенийTableAdapter.Update(this.dataSet1.ДеревоРешений);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
и скриншотик с новой надписью нам сюда выложите ;-)
0
1 / 1 / 0
Регистрация: 24.11.2013
Сообщений: 142
27.05.2014, 20:24  [ТС]
kodv, да, вы правы. Теперь при нажатии на кнопку "Сохранить данные" появляется вот это:
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
28.05.2014, 03:49
lika-2607, В принципе, все по-русски пишется. Где вы присваиваете значение полю Вариант из таблицы ДеревоРешений?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.05.2014, 03:49
Помогаю со студенческими работами здесь

Сохранение данных из DataGridView в базу данных
AVE. У меня не получается сохранить введенные данные в бд. Оно их заносит в DGV после но в бд они не передаются. Столько в инете...

Сохранение данных с DataSet в базу данных
Здраствуйте. У меня есть датагрид который подвязан к таблице в базе. Мне нужно что бы при клике на кнопку данные которые ввели в грид...

Обработка и сохранение Данных в Базе Данных
У меня несколько вопросов: 1) Можно ли делать так как я показал на скрине, при нажатии на кнопку, данные из DataGridView сохраняются в...

Сохранение данных в базу данных
Добрый день, я заполняю sqladapter: private SqlDataAdapter _mainAdapter; _mainAdapter =...

Сохранение данных в БД
Есть база данных на Аксессе. Цепляюсь к ней через bindingSourcе. База лежит в папке с проектом. Ввожу изменения в таблицы с помощью...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru