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

Обновить данные в БД собранные в одном гриде

19.03.2010, 12:53. Показов 2395. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
И как вы собираетесь обновлять данные в представлении, которое создано в базе? Один черт - все что сложнее - "клиент арендовал ФОРД" - надо писать руками. Если не лезть в Entity FW...[/QUOTE]

Я вот этим только занялась и не знаю как обновить данные в представлении... Помогите, плииииз.....

Добавлено через 13 минут
Я вот в SqlServer из нескольких таблиц собрала данные в представление и потом в VS2008 вывожу их на фору при помощи textbox'ов и combobox'ов... При необходимости данные редактируеются и должны отправляться обратно в базу... У меня не получается обновление (((
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.03.2010, 12:53
Ответы с готовыми решениями:

Преобразовать собранные данные в графический вид в Excel'e (Performance Monitor)
Как можно сохраненный график: открыть в Excel'e и преобразовать в читаемый, графический вид? На данный момент у меня всё выглядит...

Как сохранить данные в гриде?
У меня завтра предзащита, ну не получается у меня сделать сохранение записей в гриде, как только не пробовала, даже dbnavigator не...

Как по клику на кнопку отфильтровать данные в гриде?
как по клику на кнопку отфильтровать данные в гриде?

10
9 / 8 / 0
Регистрация: 03.02.2010
Сообщений: 28
20.03.2010, 01:26
Цитата Сообщение от Bestолочь Посмотреть сообщение
И как вы собираетесь обновлять данные в представлении, которое создано в базе? Один черт - все что сложнее - "клиент арендовал ФОРД" - надо писать руками. Если не лезть в Entity FW...
Я вот этим только занялась и не знаю как обновить данные в представлении... Помогите, плииииз.....

Добавлено через 13 минут
Я вот в SqlServer из нескольких таблиц собрала данные в представление и потом в VS2008 вывожу их на фору при помощи textbox'ов и combobox'ов... При необходимости данные редактируеются и должны отправляться обратно в базу... У меня не получается обновление ((([/QUOTE]

Здрасте. Ну а где вы собираетесь обновлять данные? В представлении?? Так это простой запрос. Есть еще Material View (в ORACLE по крайней мере), это таблица - но ее обновлять без толку, так как это тоже вьюха. ВЬЮХА. Обновлять нужно сами таблицы.
0
 Аватар для Bestолочь
0 / 0 / 0
Регистрация: 19.03.2010
Сообщений: 5
22.03.2010, 10:14  [ТС]
Ну что сами таблицы это понятно... Не понятно КАК это сделать...
0
 Аватар для =Jester=
10 / 10 / 0
Регистрация: 22.01.2010
Сообщений: 55
22.03.2010, 14:28
Ну а что если создать свою логику обновления таблиц? То бишь расписать все запросы UPDATE, INSERT и DELETE в многотабличном виде (также как и с многотабличным запросом выборки SELECT)? Теоретически такая логика обновления должна раскидать все данные из text и combo (или же datagrid) по своим таблицам.
0
 Аватар для Bestолочь
0 / 0 / 0
Регистрация: 19.03.2010
Сообщений: 5
22.03.2010, 17:47  [ТС]
Если бы все это было так просто для меня, я бы сюда не пришла.....
0
9 / 8 / 0
Регистрация: 03.02.2010
Сообщений: 28
22.03.2010, 18:01
Цитата Сообщение от Bestолочь Посмотреть сообщение
Если бы все это было так просто для меня, я бы сюда не пришла.....
Еще осталась проблема?
0
 Аватар для =Jester=
10 / 10 / 0
Регистрация: 22.01.2010
Сообщений: 55
23.03.2010, 01:04
я сам на .NET перешел довольно недавно, поэтому поверхностно знаю тему обновления данных, создание логики обновления и т.д. Естественно еще с таким не приходилось сталкиваться, но могу предположить как это сделать. Вот примерный код, про который я толковал. Проверите. Получится - хорошо, нет - будем думать дальше...

Допустим существует 3 таблицы с данными, тогда код выборки будет выглядеть следующим образом
SQL
1
SELECT Table1.Field1, Table2.Field1, Table3.Field1, FROM Table1, Table2, Table3
Фактически в DataGrid у нас отобразились 3 столбца с данными по одному из каждой таблицы.

Далее создаем процедуру, по принципу действия напоминающую метод Update объекта DataAdapter. Код получится довольно массивный.
VB.NET
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
Private Sub navSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles navSave.Click
        SaveData(dtMyTable)
    End Sub
 
    '-----|Процедура сохранения данных в БД|----------------------------------------------------------------------------------------------------------------
    Public Sub SaveData(ByVal table As DataTable) 
        Dim row As DataRow
        Dim iRowsAffected As Integer
        Dim cmdUpdate As OleDb.OleDbCommand
 
        Connection.Open()
        'создаем логику обновления для таблицы Table1
        cmdUpdate = CreateUpdateCommand("Table1")
        For Each row In table.Select("", "", DataViewRowState.ModifiedCurrent)
                    'и постепенно передаем новые значения в БД
                    iRowsAffected = SubmitUpdate(row, cmdUpdate)
        Next row
        
        cmdUpdate = CreateUpdateCommand("Table2")
        For Each row In table.Select("", "", DataViewRowState.ModifiedCurrent)
                    iRowsAffected = SubmitUpdate(row, cmdUpdate)
        Next row
        
        cmdUpdate = CreateUpdateCommand("Table3")
        For Each row In table.Select("", "", DataViewRowState.ModifiedCurrent)
                    iRowsAffected = SubmitUpdate(row, cmdUpdate)
        Next row
        Connection.Close()
    End Sub
    '-------------------------------------------------------------------------------------------------------------------------------------------------------
 
    '-----|Функция передачи обновленных строк в БД|---------------------------------------------------------------------------------------------------------
    Public Function SubmitUpdate(ByVal row As DataRow, ByVal cmd As OleDb.OleDbCommand) As Integer
        Dim pc As OleDb.OleDbParameterCollection = cmd.Parameters
        pc("Field1_New").Value = row("Field1")
        pc("Field1_Orig").Value = row("Field1", DataRowVersion.Original)
        Try
            Return cmd.ExecuteNonQuery
        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try
    End Function
    '-------------------------------------------------------------------------------------------------------------------------------------------------------
 
    '-----|Функция создания параметризированного запроса UPDATE|--------------------------------------------------------------------------------------------
    Public Function CreateUpdateCommand(ByVal TableName As String) As OleDb.OleDbCommand
        Dim sSQL As String
        sSQL = "UPDATE " & TableName & " SET Field1=? WHERE Field1=?"
        Connection = New OleDb.OleDbConnection(sConnectionString)
 
        Dim cmd As New OleDb.OleDbCommand(sSQL, Connection)
        Dim pc As OleDb.OleDbParameterCollection = cmd.Parameters
        pc.Add("Field1_New", OleDb.OleDbType.VarWChar)
        pc.Add("Field1_Orig", OleDb.OleDbType.VarWChar)
        Return cmd
    End Function
    '-------------------------------------------------------------------------------------------------------------------------------------------------------
Вполне возможно, что это нерациональный способ решения проблемы, тем более для INSERT и DELETE будут еще добавлены функции. Хотя можно чуточку оптимизировать код, но это уже исходя из истинных имен столбцов и таблиц базы.
0
9 / 8 / 0
Регистрация: 03.02.2010
Сообщений: 28
24.03.2010, 10:20
Не пудрите мозги людям.
0
 Аватар для =Jester=
10 / 10 / 0
Регистрация: 22.01.2010
Сообщений: 55
24.03.2010, 13:25
тогда предложите свой вариант решения!! Что ж вы так немногословны...
0
124 / 106 / 7
Регистрация: 14.02.2010
Сообщений: 263
24.03.2010, 15:28
А не проще делать хранимые процедуры?
0
 Аватар для Bestолочь
0 / 0 / 0
Регистрация: 19.03.2010
Сообщений: 5
24.03.2010, 16:12  [ТС]
Я вот думала насчет хранимых процедур.... Надо почитать о них....
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.03.2010, 16:12
Помогаю со студенческими работами здесь

Подсчитать несколько колонок и вывести в одну колонку данные в гриде?
if empty(Thisformset.form2.grid1.column10.edit1.text) and empty(Thisformset.form2.grid1.column12.edit1.text) and...

SQLite: В гриде отображаются данные одной записи для всех записей подряд
Добрый день! Возможно, тема вопроса описана непонятно, сейчас объясню суть подробнее. Есть у меня база данных в SQLite (только начала...

Обновить два раза в одном запросе
update `otvod` set `zak` = (select (`zakaz`.`vk` / '17.5') from `zakaz` where (`zakaz`.`vk` * '100' / `zakaz`.`cen`) = '10' AND...

Как обновить текущие данные в реквизитах справочника, получая данные из массива?
Получаю данные из БД в JSON формате, и засовываю их в массив. Как можно обновить значения в реквизитах справочника, данными лежащими в...

Как обновить данные на форме у клиентов, сразу же когда обновились данные в базе
Нужно реализовать мини-чат. Клиент пишет текст в таблицу, и как только текст добавился в таблицу необходимо как-то обновить данные у...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
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