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

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

23.04.2007, 11:29. Показов 6010. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите!!!
Форма Windows соединена с базой данных db1.mdb (таблица Table1, поля ID, FIO, God) через OledbDataAdapter. Поля таблицы завязаны на TextBoxID, TextBoxFIO и TextBoxGod соответственно. Подскажите пожалуйста код, который позволит при нажатии кнопки "Обновить" внести изменения записи в базу данных (запись редактируется в TextBox, например фамилю "Иванов" меняю на "Петров"). OleDbDataAdapter1.Update(DataSet11) и OleDbDataAdapter1.Update(DataSet11, "Table1") не помогает. Может еще что-нибудь к нему нужно дописывать?
Заранее благодарен!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.04.2007, 11:29
Ответы с готовыми решениями:

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

Обновление данных в базе
Здравствуйте. Пишу программу на c# с использованием firebird 2.5. Возникла проблема при попытке обнавления базы. В общем для добавления в...

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

13
Администратор
 Аватар для mik-a-el
87844 / 53165 / 249
Регистрация: 10.04.2006
Сообщений: 13,764
23.04.2007, 11:55
А ты уверен, что содержимое текстбоксов сохраняется в таблицу?
0
0 / 0 / 0
Регистрация: 23.04.2007
Сообщений: 6
23.04.2007, 13:35  [ТС]
Я думаю сохраняется в DataSet. Но апдейтом адаптера должно передавться в таблицу базы. Однако не получается. Что-то еще писать нужно. В учебниках не могу найти.
0
Администратор
 Аватар для mik-a-el
87844 / 53165 / 249
Регистрация: 10.04.2006
Сообщений: 13,764
23.04.2007, 13:52
Цитата Сообщение от leosemenov
Я думаю сохраняется в DataSet
Так эти данные сохраняются в него или нет?

Цитата Сообщение от leosemenov
Но апдейтом адаптера должно передавться в таблицу базы. Однако не получается. Что-то еще писать нужно.
Ничего больше не нужно.
0
0 / 0 / 0
Регистрация: 23.04.2007
Сообщений: 6
23.04.2007, 17:55  [ТС]
Тогда почему же не происходит обновление записи в базе данных?
0
Администратор
 Аватар для mik-a-el
87844 / 53165 / 249
Регистрация: 10.04.2006
Сообщений: 13,764
23.04.2007, 18:12
Цитата Сообщение от leosemenov
Тогда почему же не происходит обновление записи в базе данных?
Спрашиваю в третий раз: введенные данные есть в датасете или нет? Если изменений в датасете нет, то их и в базе не будет.
По описанию реализации я вообще не вижу причин им там появляться...

Лучше приведи код.
0
0 / 0 / 0
Регистрация: 23.04.2007
Сообщений: 6
23.04.2007, 21:33  [ТС]
Код такой:

VB.NET
1
2
3
4
5
6
7
8
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        OleDbDataAdapter1.Fill(DataSet11, "Table1")
    End Sub
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        DataSet11.Table1(0).FIO = TextBox2.Text
        OleDbDataAdapter1.Update(DataSet11, "Table1")
    End Sub
Почитал литературу и так понял, что не вносятся изменения в датасет. Если я в коде явно задаю изменения, например:
DataSet11.Table1(0).FIO = "Петров"
то все ОК. А если я делаю изменения в TextBox, то изменения в датасет не передаются. Как это сделать?
0
Администратор
 Аватар для mik-a-el
87844 / 53165 / 249
Регистрация: 10.04.2006
Сообщений: 13,764
24.04.2007, 09:16
Цитата Сообщение от leosemenov
DataSet11.Table1(0).FIO = TextBox2.Text
Бряку здесь поставь и посмотри, что есть в TextBox2.Text и что будет в DataSet11.Table1(0).FIO.
0
0 / 0 / 0
Регистрация: 23.04.2007
Сообщений: 6
24.04.2007, 12:45  [ТС]
Поставил. И TextBox2.Text, и DataSet11.Table1(0).FIO показывают, что они приняли измененное в TextBox2 значение. Но в базу изменение все равно не проходит.
0
Bedrosova
19.11.2007, 10:18
У меня такая же проблема. Работаю в программе с таблицей БД MySQL, вставляю запись в таблицу. Записи вставляются. Закрываю программу, снова открываю - записи новые не сохранились.
Вот такой код:
Code
1
2
3
oborudDataSet1.ceha.Rows.Add("0",textBox1.Text);
oborudDataSet1.ceha.AcceptChanges();
oborudDataSet1.AcceptChanges();
Такая же история когда для вставки записей пользуюсь bindingNavigator
Может какой-то метод еще нужно вызывать для применения изменений?
помогите...
Администратор
 Аватар для mik-a-el
87844 / 53165 / 249
Регистрация: 10.04.2006
Сообщений: 13,764
19.11.2007, 10:27
Цитата Сообщение от leosemenov
OleDbDataAdapter1.Update(DataSet11) и OleDbDataAdapter1.Update(DataSet11, "Table1") не помогает.
А в этом датасете перед апдейтом находятся измененные данные или старые?
0
0 / 0 / 0
Регистрация: 23.04.2007
Сообщений: 6
27.11.2007, 22:06  [ТС]
По своей проблеме я нашел такой выход. Во-первых с OltDB перешел на SQL.
Создал SqlConnection, SqlDataAdapter c параметрами на обновление и SqlCommand.
Последнее для того, чтобы выяснить значение ключевого поля последней записи, а потом в коде присвоить новой записи значение ключевого поля на единицу больше.

SqlCommand следующего содержания:
SQL
1
2
SELECT     MAX(Код) AS Expr1
FROM         Table1
Далее прописываем:

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        DataSet21.Clear()
        SqlDataAdapter1.Fill(DataSet21, "Table1")
        Dim a As Integer
        Dim b As Integer
        SqlConnection1.Open()
        b = cmdID.ExecuteScalar
        a = b + 1
        TextBoxID.Text = a 'получили значение ключевого поля новой записи
End Sub
 
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim newTitle As DataRow
        newTitle = DataSet21.Tables("Table1").NewRow
        newTitle("ID") = TextBoxID.Text
        newTitle("FIO") = TextBoxFIO.Text
        newTitle("God") = TextBoxGod.Text
        DataSet21.Tables("Table1").Rows.Add(newTitle)
        SqlDataAdapter1.Update(DataSet21)
End Sub
И все работает
0
vertualsneo
03.06.2009, 09:35
mik-a-el,
может подскажешь?
есть БД с таблицей, подключена к программе которая загружает табличку и отображает в "дата сет". добавляю новые строки пытаюсь сохранить - неполучается и все. Уже несколько вариантов перепробовал, вот код - то что после эксперементов осталось.

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
private void Gurnal(string klm, string sob)
        { 
            DataRow Row = dataSetConveyer.TableDataCurrent.NewRow();
            Row["id"] = ++i;
            Row["CData"] = DateTime.Today.ToShortDateString();
            Row["CTime"] = DateTime.Now.ToLongTimeString();
            Row["CQueue"] = this.Oshs;
            Row["CPart"] = klm;
            Row["CArea"] = this.Pu;            
            Row["CEvent"] = sob;
                       
            this.dataSetConveyer.TableDataCurrent.Rows.Add(Row);                        
 
            this.dataSetConveyer.AcceptChanges();
 
            this.tableDataCurrentBindingSource.EndEdit();
 
            this.tableDataCurrentTableAdapter.Update(dataSetConveyer.TableDataCurrent);
            this.dataGridView1.DataSource = dataSetConveyer.TableDataCurrent;
           
           
            CM = this.BindingContext[dataGridView1.DataSource] as CurrencyManager;
            CM.Position = CM.Count;
            
            
        }
1923 / 428 / 41
Регистрация: 12.07.2007
Сообщений: 2,062
03.06.2009, 16:33
Убрать строку
Code
1
this.dataSetConveyer.AcceptChanges();
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.06.2009, 16:33
Помогаю со студенческими работами здесь

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

В запросе к базе SQL вызывает ошибку ограничения adapter.Fill(table);
Помогите, пожалуйста, найти ошибку При нажатии на кнопку нужно вывести записи, соответствующие Фамилии сотрудника, введенной в...

Обновление содержимого DataGridView после изменений в базе
Проблема в следующем. Добавляю новую строку в таблицу: clientsTableAdapter.InsertQuery(id, name, email);Привязанный к таблице...

Обновление содержимого DataGridView после изменений в базе
Все примеры найденные в интернете не помогают. Посмотрите пожалуйста кто может проект,архив прилагаю. Например в Rashodi.cs со...

Обновление одного значения в Базе без DataGrid и DataSet
Доброго времени. Работаю в WinForms. У меня есть метод который возвращает DataTable (таблица из 2х столбиков : цена, название). Затем...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru