С Новым годом! Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/48: Рейтинг темы: голосов - 48, средняя оценка - 4.96
 Аватар для narioz
1 / 1 / 0
Регистрация: 19.02.2012
Сообщений: 63

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

20.01.2013, 16:46. Показов 9058. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, товарищи форумчане! Столкнулся сейчас с такой проблемой: не добавляются данные в базу данных access. Как обычно (и думаю не зря) грешу на свои кривые руки, посему прошу помощи у вас. добавление данных у меня делается в отдельной форме. По нажатию кнопки "добавить" открывается форма с текстбоксами из которых я и хочу добавить данные в таблицу.
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 button1_Click(object sender, EventArgs e)
        {//если все поля не пусты
            if (textBox1.Text != "" && textBox2.Text != "" && textBox3.Text != "" && textBox4.Text != "" && textBox5.Text != "" && textBox6.Text != "" && textBox7.Text != "" && textBox8.Text != "" && textBox9.Text != "")
            {//то создать новую запись
                DataRow row = агентство_недвижимостиDataSet1.Клиенты.NewRow();
                row["Фамилия"] = textBox1.Text;
                row["Имя"] = textBox2.Text;
                row["Отчество"] = textBox3.Text;
                row["Серия  паспорта"] = textBox4.Text;
                row["Номер паспорта"] = textBox5.Text;
                row["Кем выдан паспорт"] = textBox6.Text;
                row["Контактный номер телефона"] = textBox7.Text;
                row["Адрес прописки"] = textBox8.Text;
                row["Место рождения"] = textBox9.Text;
                агентство_недвижимостиDataSet1.Клиенты.Rows.Add(row);
                update_tables();
            }
            else MessageBox.Show("Одно из полецй не заполнено!\nПожалуйста, заполните все поля и повторите попытку");
        }
 
        private void update_tables()
        {
            клиентыTableAdapter1.Update(агентство_недвижимостиDataSet1);
            агентство_недвижимостиDataSet1.AcceptChanges();
            Close();
        }
что я делаю не так? после выполнения всего этого никакие данные не добавляются в базу данных
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.01.2013, 16:46
Ответы с готовыми решениями:

Обновление ФОРМЫ в MS Access
Всем привет! Подскажите, пж, есть ли вариант решения проблемы моей)) у меня есть база Access в ней таблицы с sharepoint - для...

Обновление данных в Access
Привет всем! Есть небольшая проблема: на форме есть DGV и два Textbox. В DGV находится таблица (наименование, количество). При добавление...

Обновление значений access
Такая проблема. Добавляю запись в таблицу access через ADOtable. Выполняю проверку на уникальность после нажатия кнопки 'Добавить'. Так...

7
Неадекват
 Аватар для freeba
1501 / 1237 / 248
Регистрация: 02.04.2010
Сообщений: 2,807
20.01.2013, 17:50
Для добавления используйте Insert, а не Update.

PS: Дельфист?
0
 Аватар для narioz
1 / 1 / 0
Регистрация: 19.02.2012
Сообщений: 63
20.01.2013, 19:14  [ТС]
Цитата Сообщение от freeba Посмотреть сообщение
PS: Дельфист?
не поняль, что?
можете подробнее об insert рассказать? достаточно ли в скобках перечислить все поля строки, или нужно ещё accept changes делать?
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
20.01.2013, 20:07
narioz, человек пошутил. Update применяет все изменения из DataSet. Можете убедиться в этом по поэтой ссылке. AcceptChanges делать не нужно, ибо его выполняет метод Update. Явно данный метод вообще лучше не выполнять.
По поводу того, почему у вас не сохраняется, сказать сложно. В коде явных огрехов нет ...
0
 Аватар для narioz
1 / 1 / 0
Регистрация: 19.02.2012
Сообщений: 63
20.01.2013, 21:20  [ТС]
может ли моя проблемы быть вызвана тем, что я в другой форме это делаю? не в той, где dataGridView с пришитой к нему таблицей клиенты. DataSet, клиентыTableAdapter1 и клиентыBindingSource1 на форму добавлены

Добавлено через 1 час 0 минут
insert создает новую запись в таблице, я же всё правильно понял?
0
Неадекват
 Аватар для freeba
1501 / 1237 / 248
Регистрация: 02.04.2010
Сообщений: 2,807
21.01.2013, 01:08
Цитата Сообщение от kodv Посмотреть сообщение
narioz, человек пошутил. Update применяет все изменения из DataSet.
Отнюдь. Если в обновляемой таблице косяк с primary key, то Update в access просто не отрабатывает ибо не умеет генерировать UpdateCommand для таблиц имееющих количество ключевых полей отличное от одного или для связанных таблиц.

т.е update_tables - выкидываете и добавляете строчку непосредственно в событии кнопки. Как-то так:
C#
1
клиентыTableAdapter1.Insert(textBox1.Text, textBox2.Text, textBox3.Text, ...);
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
21.01.2013, 02:47
Цитата Сообщение от narioz Посмотреть сообщение
может ли моя проблемы быть вызвана тем, что я в другой форме это делаю?
Я надеюсь, что после закрытия второй формы у вас перевыбор данных осуществляется в первой форме?

Цитата Сообщение от freeba Посмотреть сообщение
Отнюдь. Если в обновляемой таблице косяк с primary key, то Update в access просто не отрабатывает ибо не умеет генерировать UpdateCommand для таблиц имееющих количество ключевых полей отличное от одного или для связанных таблиц.
Я поэтому и говорю, что сложно понять. Если бы человек показал, или хотя бы сказал, каким образом он адаптер создает. Может быть у него вообще InsertCommand пустой оказывается ... Хотя в этом случае должно исключение валиться. А может быть у него по своему экземпляру датасета в каждой форме, и запись реально добавляется, но в первой форме он ее не видит потому, что не обновляет датасет в первой форме после добавления. А так, при правильно настроеном адаптере, код вполне рабочий.
0
 Аватар для narioz
1 / 1 / 0
Регистрация: 19.02.2012
Сообщений: 63
21.01.2013, 12:08  [ТС]
вот весь проект. кому не сложно, гляньте пожалуйста. на вкладке клиенты кнопка добавить клиента
Вложения
Тип файла: zip Agent.zip (976.5 Кб, 94 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.01.2013, 12:08
Помогаю со студенческими работами здесь

Обновление данных в Access
Имеется база(Access) в которой присутствуют поля: Kod(число), UnsdBasicVac(число), ChrgdBasicVac(логич). В делфи подключена эта база...

Delphi и обновление БД Access
Доброго всем. Существует бд в акцессе и интерфейс в делфи. Создал кнопку обновить, ошибок не выдает но и базу не обновляет. Вот фрагмент....

Обновление DataGridView (Access)
Опять проблема с БД Access. Снова нужна ваша помощь в двух вопросах 1. Как обновить DataGridView, база заполняется, но для...

Обновление данных в access
Помогите с такой условием в таблице "организации" есть поле "email" - значение (a,b,c) и поле "признак" - значение (A,B,C) в...

Обновление записей в БД (Access)
В FAQ форума есть пример: Sub UpdateStr(ByVal KeyValue As Integer) SqlCom = New OleDb.OleDbCommand("UPDATE SET ='Воронцов'...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru