Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
 Аватар для Lenoshka
39 / 39 / 3
Регистрация: 22.02.2013
Сообщений: 117
Записей в блоге: 2

DataGridView и обновления записей в базе

22.02.2013, 10:49. Показов 1188. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!
Есть форма, на ней грид. Заполняю грид данными из базы:
C#
1
2
3
4
OleDbDataAdapter adapter = new OleDbDataAdapter("EXEC payments " + account.Text, connection);
            OleDbCommandBuilder commandBuilder = new OleDbCommandBuilder(adapter);
            adapter.Fill(dataTable);
            Payments.DataSource = dataTable;
Далее делаю изменения в одном столбце, в одной-двух строках и по нажатию на кнопку данные должны обновиться в базе:
C#
1
2
3
4
5
6
 OleDbDataAdapter adapter = new OleDbDataAdapter("EXEC payments " + account.Text, connection);
            adapter.UpdateCommand = new OleDbCommand("UPDATE allpayments SET doc_status=? " +
              "WHERE ACC_IN='" + account.Text + "'");
              adapter.UpdateCommand.Parameters.Add("doc_status", OleDbType.Integer, 4, "doc_status");
            adapter.UpdateCommand.Connection = connection;
            adapter.Update((DataTable)Payments.DataSource);
Вот в чем проблема: если я меняю значения в одной строке, то в базу заносятся данные, где все строки столбца doc_status равны новому значению, если изменения в нескольких строках, то тогда все строки столбца doc_status равны последнему значению (если в первой строке "1", во второй "5", то во всех строках doc_status равен "5").
Надеюсь объяснила понятно...
Помогите, пожалуйста, я не могу понять, в чем ошибка...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.02.2013, 10:49
Ответы с готовыми решениями:

Удаление всех записей из DataGridView и добавление записей
Всем доброго времени суток. Столкнулся со следующей проблемой: написал код на удаление строк DataGridView. Строки удаляет но не все, а...

Ошибка записи и обновления в базе
Права NTFS и в inetmgr выстаил на чтение и на запись! if Request.QueryString('act')='sav' then sSQL1 = 'UPDATE news SET...

Не могу применить обновления в базе данных
Здравствуйте, никто не сталкивался с этим? После внесения изменений, пытаюсь применить миграцию к базе данных командой rake и вот, что в...

3
 Аватар для n1l
136 / 138 / 18
Регистрация: 26.07.2010
Сообщений: 911
23.02.2013, 19:54
Цитата Сообщение от Lenoshka Посмотреть сообщение
("UPDATE allpayments SET doc_status=? " +
* * * * * * * "WHERE ACC_IN='" + account.Text + "'");
Почему у вас в синтаксисе команды стоит update allpayments?

А вообще лучше сделайте так:
Разбейте логику работы с вашей базой данных на три этапа:

1) получение коллекции ваших объектов
2) транспортизация ваших обхъектов на слой отображения
3) отображение ваших объектов

После того, как какие-то данные поменялись, выбирайте из своей коллекции объекты, которые были изменены и уже работайте только с ними.
0
403 / 86 / 8
Регистрация: 16.02.2013
Сообщений: 356
23.02.2013, 22:50
Цитата Сообщение от Lenoshka Посмотреть сообщение
ACC_IN
Возможно это поле не является уникальным ключом
1
 Аватар для Lenoshka
39 / 39 / 3
Регистрация: 22.02.2013
Сообщений: 117
Записей в блоге: 2
25.02.2013, 16:21  [ТС]
Догадываюсь, в чем проблема. Спасибо!
Цитата Сообщение от Cat2 Посмотреть сообщение
Возможно это поле не является уникальным ключом
Это вообще не ключ... Попробую обновлять по ключу (столбец с ключом вообще в выборку не попадал).

Добавлено через 5 часов 26 минут
Модифицировала кнопку сохранения т.о.:
C#
1
2
3
4
5
6
7
8
9
10
private void SavePay_Click(object sender, EventArgs e)
        {
            OleDbDataAdapter adapter = new OleDbDataAdapter("EXEC payments " + account.Text, connection);
            adapter.UpdateCommand = new OleDbCommand("UPDATE allpayments SET doc_status=? WHERE id=?");
            adapter.UpdateCommand.Parameters.Add("doc_status", OleDbType.Integer, 4, "doc_status");
            adapter.UpdateCommand.Parameters.Add("id", OleDbType.Integer, 4, "id");
            adapter.UpdateCommand.Connection = connection;
            adapter.Update((DataTable)Payments.DataSource);
              
        }
Теперь все работает как надо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.02.2013, 16:21
Помогаю со студенческими работами здесь

Скрипт обновления записей в таблице
Доброго дня, форумчане. Я начинающий в пхп, и хочу проконсультировать по следующему вопросу. Мне нужно сделать скрипт обновления записей...

Datagridview обновления данных
Добрый день, подскажите есть на главной форме datagridview оно отображает всю БД и есть дочерняя форма которая добавляет данные в БД так...

После обновления FireBird до 3 версии перестала подключаться к базе
Server Version = connection.Server Version выдал исключение типа System.InvalidOperationException при открытии соединения. ...

Формирование таблиц из БД и элементов управления и обновления записей
День добрый! Есть вопрос из разряда "можно ли так или как правильно?" . Есть две таблицы, таблица заявок на ремонт техники и таблица...

Ошибка обновления БД MySql через DataGridView
Здравствуйте! Очень нужна помощь. Сразу говорю, я не сильна в VB. В общем, есть бд. Загружаю ее в datagridview. Все нормально. Пробую...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
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 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты 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