Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: СРОЧНО - DataGrid и запись в базу Добавлено: 12.09.05 17:32  

Автор вопроса:  Alik
имеется таблица со структурой:
id date summ1

таблица связана с DataGrid.
Пользователь корректирует сумму или вводит новое значение.
Потом нажимает кнопку сохранить, отрабатывает метод Update - DataAdapter и данные сохраняются в таблице.

Мне необходимо также произвести операции с ТОЛЬКО ТЕМИ ДАННЫМИ КОТОРЫЕ БЫЛИ ИЗМЕНЕНЫ ПОЛЬЗОВАТЕЛЕМ в DataGrid.

Например, был набор:
123 01.09.2005 100
258 01.09.2005 200
456 01.09.2005 400

Пользователь в записе с полем id=258 изменил 200 на 300 и нажал кнопку сохранить.
При этом надо только для этого id=258 (остальные записи не трогать) к дате прибавить 10 дней и вставить новую запись вида:
258 11.09.2005 300
или если есть запись с таким id то обновить ее.

Пишу на VB.NET

Ответить

  Ответы Всего ответов: 5  

Номер ответа: 1
Автор ответа:
 student-uni



Вопросов: 122
Ответов: 257
 Профиль | | #1 Добавлено: 12.09.05 19:46
UPDATE tablename SET fildName=300 WHERE id=258

Ответить

Номер ответа: 2
Автор ответа:
 Alik



Вопросов: 13
Ответов: 16
 Профиль | | #2 Добавлено: 13.09.05 08:23
Но как узнать что id=258 как раз был изменен, нужно обновлять только те которые были изменены в DataGrid.

Ответить

Номер ответа: 3
Автор ответа:
 danser



ICQ: 299287824 

Вопросов: 76
Ответов: 209
 Профиль | | #3 Добавлено: 13.09.05 09:07
Раскажи как ты таблицу БД связал с DataGrid.

Ответить

Номер ответа: 4
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #4
Добавлено: 13.09.05 17:46
DataTable запоминает все изменения локальных данных (изменения,
удаления, вставки). При вызове DataAdapter.Update на сервер
отправляются только нужные запросы (запросы на изменение измененных
строк, удаление удаленных, вставку вставленных). Никаких ручных
действий для этого производить не нужно - все уже работает как надо.

Ответить

Номер ответа: 5
Автор ответа:
 Alik



Вопросов: 13
Ответов: 16
 Профиль | | #5 Добавлено: 14.09.05 17:17
попробую описать подробнее.
DataGrid связываю так: в свойствах DataSource прописал - DS_db_update1.db

Исполняется код:

Private Sub DB_save_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DB_save.Click
        Dim myCommand As New SqlCommand("UPDATE db SET otgruzka_plan_old = otgruzka_plan", SqlConnection)
        SqlConnection.Open()
        myCommand.ExecuteNonQuery()
        SqlConnection.Close()

        ;DA_db_update.Update(DS_db_update1)
End Sub


Код отрабатывает при нажатии на кнопку Сохранить.
В первом блоке до Update в поле otgruzka_plan_old сохраняю старое значение поля otgruzka_plan, это сделано чтобы до обновления запомнить значение которое было до редактирования пользователем.

Теперь мне необходимо чтобы также при нажатии кнопки Сохранить после вызова Update произвести манипуляции с записями которые были изменены пользователем в DataGrid.

Пример: в DataGrid имеем
1.09.2005 500
2.09.2005 100
3.09.2005 200

Пользователь за 2 сентября изменил 100 на 500.
Сейчас при нажатии Сохранить у меня в поле otgruzka_plan_old запишется 100 (старое значение). И после вызова Update обновятся данные в таблице (то есть 100 заменится на 500).
Так вот надо сделать чтобы только ко 2.09.2005 (именно только к дате в которой пользователь изменил сумму, а не ко всем) прибавить 10 дней и создать запись:
12.09.2005 400
400 вычисляется как 500-100 (новое знач. минус старое)

Вот как это сделать только для записи которую редактировал пользователь не знаю. :(

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам