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

Обновление БД

25.05.2009, 00:55. Показов 6126. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Итак. У меня есть DataGridView. В нем отображаются данные из бд. Мне нужно, чтобы когда я редактирую DataGridView в бд тоже происходило обновление данных. Надеюсь поможете.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.05.2009, 00:55
Ответы с готовыми решениями:

Обновление связанных сущностей (каскадное обновление)
Доброго времени суток. У меня возникла проблема с обновлением сущности и связанной с ней сущности. Подход к созданию бд -...

Не могу установить обновление KB2670838 (Обновление платформы для Windows 7)
Не могу установить обновление KB2670838(Обновление платформы для Windows 7). Запускаю .msu файл, начинает устанавливаться, но в конце...

Обновление базы и ошибка: Обновление невозможно. База данных или объект доступны только для чтения.
Помогите пожалуйста! asp не может обновить базу. Про ошибку говорит Microsoft OLE DB Provider for ODBC Drivers (0x80004005) ...

5
1923 / 428 / 41
Регистрация: 12.07.2007
Сообщений: 2,062
25.05.2009, 02:19
Каким образом достаете данные из БД?
0
1 / 1 / 0
Регистрация: 07.05.2009
Сообщений: 16
25.05.2009, 10:50  [ТС]
C#
1
2
3
4
5
6
7
8
9
DataSet ds = new DataSet();
string commandString;
commandString = "select * from JIN";
SqlDataAdapter adapter = new SqlDataAdapter(commandString, ConnectStr);
adapter.Fill(ds, "JIN");
dataGridView_Journal.DataSource = ds.Tables["NEDRA_JIN"].DefaultView;
dataGridView_Journal.Columns["FDATE"].HeaderText = "Дата приема файла";
dataGridView_Journal.Columns["FNAME"].HeaderText = "Наименование файла";
dataGridView_Journal.Columns["KOMENT"].HeaderText = "Комментарий";
И мне нужно чтобы пользователь мог поменять ячейку Комментарий.

Добавлено через 30 минут 51 секунду
Ой нет совсем не то написал...
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
            if (dataGridView_Journal.CurrentCell != null)
            {
                try
                {
                    SqlDataAdapter adapter = new SqlDataAdapter("select * from JIN", ConnectStr);
                    SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
                    DataSet ds = new DataSet();
                    adapter.Fill(ds, "JIN");
                    DataTable table = ds.Tables["JIN"];
                    DataRow row = table.NewRow();
                    row["FDATE"] = dataGridView_Journal.Rows[e.RowIndex].Cells[0].Value;
                    row["FNAME"] = dataGridView_Journal.Rows[e.RowIndex].Cells[1].Value;
                    row["KOMENT"] = dataGridView_Journal.CurrentCell.Value;
                    table.Rows.Add(row);
                    adapter.Update(table);
                }
                catch (SqlException ex)
                {
                    MessageBox.Show(ex.Message.ToString(), "Ошибка");
                }
            }
пытаюсь сделать как-то так, пишет что дублирую ключ.
0
46 / 46 / 19
Регистрация: 15.03.2009
Сообщений: 178
25.05.2009, 11:16
Gustav, до редактирования было как буд-то бы лучше.
Возможно все же вначале нужно заполнить dataGridView
Затем добавить кнопку "обновить"

"когда я редактирую DataGridView в бд тоже происходило обновление данных"
Добавьте в код проверку на условие редактирования:
если данные обновляются, используйте запрос с UPDATE и для SqlCommand задайте команду ExecuteNonQuery(),
если же данные добавляются, то нужен простой запрос с INSERT INTO.

"нужно чтобы пользователь мог поменять ячейку Комментарий"
для этого столбца свойство ReadOnly задайте false.
0
1 / 1 / 0
Регистрация: 07.05.2009
Сообщений: 16
25.05.2009, 15:02  [ТС]
Делаю следующим образом:
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 dataGridView_Journal_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            conn = new SqlConnection(ConnectStr);
            conn.Open();
            {
                if (dataGridView_Journal.CurrentCell != null)
                {
                    SqlTransaction transaction = conn.BeginTransaction();
                    new SqlCommand("update NEDRA_JIN set KOMENT='" + dataGridView_Journal.CurrentCell.Value.ToString() + "' where FNAME ='" + dataGridView_Journal.Rows[e.RowIndex].Cells[1].Value.ToString() + "'", conn, transaction).ExecuteNonQuery();
                    transaction.Commit();
                }
            }
        ShowJournal();
        }
 
        private void ShowJournal()
        {
            DataSet ds = new DataSet();
            string commandString;
            commandString = "select * from NEDRA_JIN";
            SqlDataAdapter adapter = new SqlDataAdapter(commandString, ConnectStr);
            adapter.Fill(ds, "NEDRA_JIN");
            dataGridView_Journal.DataSource = ds.Tables["NEDRA_JIN"].DefaultView;   [COLOR="Red"](1)[/COLOR]
            dataGridView_Journal.Columns["FDATE"].HeaderText = "Дата приема файла";
            dataGridView_Journal.Columns["FNAME"].HeaderText = "Наименование файла";
            dataGridView_Journal.Columns["KOMENT"].HeaderText = "Комментарий";
        }
Но если стереть комментарий в ячейке, то в месте (1) возникает Exception: Operation is not valid because it results in a reentrant call to the SetCurrentCellAddressCore function.
0
1923 / 428 / 41
Регистрация: 12.07.2007
Сообщений: 2,062
26.05.2009, 02:40
Схожая тема: Обновить данные DataGridView из другой формы

C#
1
new SqlCommand("update NEDRA_JIN set KOMENT='" + dataGridView_Journal.CurrentCell.Value.ToString() + "' where FNAME ='" + dataGridView_Journal.Rows[e.RowIndex].Cells[1].Value.ToString() + "'", conn, transaction).ExecuteNonQuery();
Прочитайте про SqlParameter
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.05.2009, 02:40
Помогаю со студенческими работами здесь

Обновление свойств компонентов на обновление состояния родителя
Компонент Clock отрисовывается 500 раз. Внутри тикает таймер и когда компонент один - все ОК. Но когда их 500 (по всем временным...

Обновление релиза и обновление Типовой конфигураци
Господа, подскажите, в чем разница между обновлением Релиза и обновлением Типовой конфигурации. Как часто обновляется Релиз по сравнению с...

Обновление пк
MSI Z370 A-PRO Intel i5-8600K ( Thermalright Macho Rev.A (BW) ) DDR4 2666 apecer 2 плашки по 8gb MSI rtx 2080 GAMING X TRIO БП...

обновление бд
Собственно говоря есть бд в бд происходит некоторые sql запросы сразу после такого запроса в самом бдгриде изменения отбора происходят ...

Обновление с 1.0.15 до 1.5.22
Подскажите, пожалуйста, как можно обновить версию сайта с 1.0.15 до 1.5.22. А то первый раз сталкиваюсь с движком Joomla. С ним ещё мало...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Архитектура слоя интернета для сервера слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru