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

Обновление данных в базе

05.05.2014, 22:14. Показов 1141. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Пишу программу на c# с использованием firebird 2.5. Возникла проблема при попытке обнавления базы.
В общем для добавления в базу я использую вот такой кусок кода:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Form3 f3 = new Form3();
            if (f3.ShowDialog() == DialogResult.OK)
            {
                FbCommand command = new FbCommand();
                command.Connection = vISITTableAdapter.Connection;
                command.Connection.Open();
                command.CommandText = "select next value for gen_visitors_id from rdb$database";
                FbCommandBuilder fbCommandBuilder = new FbCommandBuilder(vISITTableAdapter.Adapter);
                DataRow v2 = dataSet1.Tables["VISIT"].NewRow();
                v2["VISIT_ID"] = int.Parse(command.ExecuteScalar().ToString());
                v2["VISITORS_ID"] = f3.GetVis_id1();
                v2["DATE"] = f3.date;
                v2["START_TIME"] = f3.s_time;
                if (!string.IsNullOrEmpty(f3.e_time))
                    v2["END_TIME"] = f3.e_time;
                dataSet1.Tables["Visit"].Rows.Add(v2);
                vISITTableAdapter.Adapter.Update(dataSet1, "VISIT");
                this.vISITTableAdapter.Fill(this.dataSet1.VISIT);
                command.Connection.Close();
            }
И при этом всё работает норм, но у меня может остаться одно поле незаполненым и я хочу его заполнить потом. Для этого когда я кликаю по полю элемента dataGridView я считываю все ранее введённые данные и забиваю их в текстбоксы, а незаполненное поле заполняю и использую почти эдентичный код
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
DataRow modWork = ((DataRowView)vISITBindingSource.Current).Row;
            vis_id5 = (int)modWork["VISIT_ID"];
            vis_id6 = (int)modWork["VISITORS_ID"];
            t_date = (DateTime)modWork["DATE"];
            t_s_time = (TimeSpan)modWork["START_TIME"];
            Form10 f10 = new Form10();
            f10.textBox1.Text = vis_id6.ToString();
            f10.dateTimePicker1.Text = t_date.ToString();
            f10.textBox2.Text = t_s_time.ToString();
            if (f10.ShowDialog() == DialogResult.OK)
            {
                FbCommand command = new FbCommand();
                command.Connection = vISITTableAdapter.Connection;
                command.Connection.Open();
                command.CommandText = "select next value for gen_visitors_id from rdb$database";
                FbCommandBuilder fbCommandBuilder = new FbCommandBuilder(vISITTableAdapter.Adapter);
                DataRow uv2 = dataSet1.Tables["VISIT"].NewRow();
                uv2["VISIT_ID"] = vis_id4.ToString();
                uv2["VISITORS_ID"] = f10.GetVis_id7();
                uv2["DATE"] = f10.date;
                uv2["START_TIME"] = f10.s_time;
                if (!string.IsNullOrEmpty(f10.e_time))
                    uv2["END_TIME"] = f10.e_time;
                dataSet1.Tables["Visit"].Rows.Add(uv2);
                vISITTableAdapter.Adapter.Update(dataSet1, "VISIT");
                this.vISITTableAdapter.Fill(this.dataSet1.VISIT);
                command.Connection.Close();
Но в итоге при попытке обнавить данные программа вылетает на строчке
C#
1
vISITTableAdapter.Adapter.Update(dataSet1, "VISIT");
Если кто знает в чём я накасячил подскажите плиз. Спасибо заранее.
Миниатюры
Обновление данных в базе  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.05.2014, 22:14
Ответы с готовыми решениями:

Обновление данных в базе
Добрый день! я полный новичок в c# и SQLite поэтому прошу не пинать больно.... В моем проекте есть необходимость обновлять данные в...

Обновление Table в базе данных
Помогите!!! Форма Windows соединена с базой данных db1.mdb (таблица Table1, поля ID, FIO, God) через OledbDataAdapter. Поля таблицы...

Обновление строк в базе данных
Требуется во время чтения, обновлять значения в базе данных. Когда я использую: SqlCommand sc = new SqlCommand("Select *from...

15
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
05.05.2014, 22:29
Несколько раз просмотрел, разницы не увидел. Какое пустое поле? Опиши яснее. И текст ошибки давай.
Для вставки картинки: расширенный режим и скрепка.
0
0 / 0 / 1
Регистрация: 13.04.2013
Сообщений: 165
05.05.2014, 23:37  [ТС]
Текст ошибки уже есть. А код да почти один и тот же за исключением того что теперь я в поля таблицы в базе записываю скопированные значения. А пустым полем я оставляю END_TIME и хочу заполнить его потом.
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
06.05.2014, 09:37
После того как сформируешь uv2, посмотри в отладчике, что в ней содержится и всё ли верно.
0
0 / 0 / 1
Регистрация: 13.04.2013
Сообщений: 165
06.05.2014, 13:21  [ТС]
Вроде все поля заполняются но кроме 2 айдишников они по нулям почему то вот этого не пойму.
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
06.05.2014, 15:02
Типы соответствуют? Проверь в отладчике.
0
0 / 0 / 1
Регистрация: 13.04.2013
Сообщений: 165
06.05.2014, 18:32  [ТС]
Всё с этим разобрался, всё записывается но программа не дописывает в строку где незаписанное поле а создаёт новую с те ми же данными в старой оставляет так же последнее поле пустым.
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
06.05.2014, 20:21
Ну ясное дело, у тебя же NewRow(). Хочешь модифицировать - ищи существующую строку и в ней меняй.
0
0 / 0 / 1
Регистрация: 13.04.2013
Сообщений: 165
06.05.2014, 21:49  [ТС]
А как это для меня будет неподскажешь? Там в начале я привёл пример кода которым я просто добавляю в эту таблицу.
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
06.05.2014, 22:22
Например, запоминай её номер в наборе после добавления, потом через Rows найдёшь.
0
0 / 0 / 1
Регистрация: 13.04.2013
Сообщений: 165
06.05.2014, 22:24  [ТС]
Да её айди я считываю но не знаю как в ту же строку добавить
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
06.05.2014, 22:36
Rows["имя колонки"] =
Так пробовал?
0
0 / 0 / 1
Регистрация: 13.04.2013
Сообщений: 165
06.05.2014, 22:48  [ТС]
Я так могу записать просто в дейта грид вью но мне при этом нада ещё и в базе данные обновить а так я хз как сделать уже.
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
06.05.2014, 22:52
Я про DataTable говорю, куда ты добавляешь строку.
0
0 / 0 / 1
Регистрация: 13.04.2013
Сообщений: 165
06.05.2014, 23:29  [ТС]
Я не понимаю что ты сейчас имеешь в виду на примере моего кода можешь покозать куда это нужно дописать?

Добавлено через 24 минуты
Всё решил проблему сори за беспокойство)).
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
07.05.2014, 07:26
Покажи как решил.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.05.2014, 07:26
Помогаю со студенческими работами здесь

DataGridView обновление данных в базе.
Возникла следующая проблема: есль база access есть динамический контрол datagridview заполняемый из этой базы. требуется обратная связь...

Обновление данных в базе
Доброе время суток. Проблем следующая, существует форма <?php include("block/bd.php"); $result = mysql_query("SELECT text FROM...

Обновление в базе данных
всем привет. пытаюсь сделать обновление в базе данных. суть в том то, что ошибок не выводит и даты в базе не обновляется. точнее одна...

Обновление данных в базе
Подскажите, где может быть ошибка при обновлении данных. Здесь происходит вставка данных и обновление, вставка работает при обновлении...

Обновление информации в базе данных
Здравствуйте, я новичок в PHP. Помогите пожалуйста. Есть форма и код PHP которые должны делать обновление инфорации в базе данных Сама...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
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 - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru