Модераторы: diadiavova, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сохранить сделанные изменения в Базу Данных 
V
    Опции темы
Суровый
Дата 12.7.2010, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 30.4.2009

Репутация: нет
Всего: 2



Здравствуйте!
Пишу программу на VB .NET, которая работает с Базой Данных в MS Access.
С отображением какой-либо таблицы проблем не было. Использовал OleDbDataAdapter, DataSet, DataGridView.
В DataGridView настраивал DataSource и DataMember, а далее в коде при загрузке формы просто вызывал функцию: 
Код

OleDbAdapter1.Fill(DataSet1)

Но c добавлением записей в БД появились проблемы.
Немного о Базе Данных.
Имеет одну таблицу, содержащую два столбца, названия которых "Наименование" и "Тип", тип столбцов - String
На форме располагаю TextBox1 и ComboBox1, где в TextBox1 ввожу желаемое Наименование, а в ComboBox1 выбираю желаемый Тип.
По нажатию кнопки происходит следующее:
Код

OleDbDataAdapter1.InsertCommand.CommandText = "INSERT INTO Main" & _
                      "(Наименование, Тип)" & _
"VALUES     ('" + TextBox1.Text + "', '" + ComboBox1.Text + "')" 
OleDbDataAdapter1.InsertCommand.Connection.Open()
OleDbDataAdapter1.InsertCommand.ExecuteNonQuery()
OleDbDataAdapter1.InsertCommand.Connection.Close()
OleDbDataAdapter1.Update(DataSet1)
OleDbDataAdapter1.Fill(DataSet1)

Данный код формирует запрос, открывает соединение, выполняет запрос на добавление, закрывает соединение, а далее вносит данные из DataSet1 в реальный .mdb файл, затем выводит полученную базу данных.
Программа отлично показывает изменения в DataSet1 (потому что DataGridView показывает новую запись), но видимо в реальную Базу Данных она ничего не заносит, потому что если открыть Базу Данных - никаких новых записей там не увидишь (хотя все источники, которые я видел, указывают как раз на функцию Update(...), и говорят что при её вызове произойдет обновление реальной БД)

Надеюсь на Вашу помощь, или хотя бы подтверждение или опровержение правильности моих доводов (т.е. то ли я ищу, или проблема заключается в другом).
Заранее большое спасибо!

Это сообщение отредактировал(а) Суровый - 12.7.2010, 19:33
PM MAIL   Вверх
bopoha
Дата 12.7.2010, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

Репутация: нет
Всего: 21



По-моему вы ошиблись веткой, MS Access тут не при чем.
PM MAIL WWW ICQ Skype GTalk   Вверх
Суровый
Дата 13.7.2010, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 30.4.2009

Репутация: нет
Всего: 2



Цитата(bopoha @  12.7.2010,  23:22 Найти цитируемый пост)
По-моему вы ошиблись веткой, MS Access тут не при чем. 


Как не при чем?
Я же работаю с базой данных, которая создана в MS Access.
Всё что я пытаюсь сделать - изменить данные в базе данных, используя самописную программу.
PM MAIL   Вверх
chip_and_dayl
Дата 13.7.2010, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 603
Регистрация: 22.4.2007
Где: Украина, Киев

Репутация: нет
Всего: 9



Суровый
Ну и что, что вы работаете с базой. Проблема ж не в ней. А то, что вы не можете средствами Визуал Байсик сохранить данные в базу. 



--------------------
Фсё будет хорошо!!!
PM MAIL Skype   Вверх
Суровый
Дата 13.7.2010, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 30.4.2009

Репутация: нет
Всего: 2



Мне показалось в этом разделе каждая третья тема про работу с БД из собственных приложений. К тому же работа с БД - довольно редкий вопрос, узкоспециализированный. Поэтому я и создал тему тут.
Ладно, тогда прошу модератора перенести тему в соответствующий раздел...
PM MAIL   Вверх
chip_and_dayl
Дата 13.7.2010, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 603
Регистрация: 22.4.2007
Где: Украина, Киев

Репутация: нет
Всего: 9



Кстати, я такие проблемы на днях видел в ветке .Net. Как минимум с 10 тем найдете, это я вам обещаю:)


--------------------
Фсё будет хорошо!!!
PM MAIL Skype   Вверх
diadiavova
Дата 14.7.2010, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Суровый, для того, чтобы метод Update выполнял запрос на обновление, этот запрос надо передать свойству UpdateCommand адаптера. 

И кстати, для вопросов по базам данных под .Net есть целый раздел.
http://forum.vingrad.ru/forum/dotnet-net-db-database.html

Это сообщение отредактировал(а) diadiavova - 14.7.2010, 09:28


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Суровый
Дата 14.7.2010, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 30.4.2009

Репутация: нет
Всего: 2



Цитата(diadiavova @  14.7.2010,  09:24 Найти цитируемый пост)
Суровый, для того, чтобы метод Update выполнял запрос на обновление, этот запрос надо передать свойству UpdateCommand адаптера. 

И кстати, для вопросов по базам данных под .Net есть целый раздел.
http://forum.vingrad.ru/forum/dotnet-net-db-database.html

Спасибо, diadiavova
Только вот всё-равно не выходит у меня найти нужного решения.
PM MAIL   Вверх
Суровый
Дата 14.7.2010, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 30.4.2009

Репутация: нет
Всего: 2



Проблема решилась.
При добавлении OleDbDataAdapter и выборе подключения, мастер предлагает скопировать файл базы данных с папку с проектом. Если согласиться, то будет происходить вышеописанный случай. Следственно, совет всем, кто будет с этим разбираться:
Не соглашайтесь на копирование базы данных в проект! Работайте с оригиналом!

И, на всякий случай, рабочий код будущему поколению  smile 
Напомню, что имеется Таблица Main с двумя полями "Наименование" и "Тип", где "Наименование"  - ключевое поле.
Код

        DataSet11.Clear()
        OleDbDataAdapter1.InsertCommand.CommandText = "INSERT INTO Main" & _
                      "(Наименование, Тип)" & _
"VALUES     ('" + TextBox1.Text + "', '" + ComboBox1.Text + "')"
        OleDbDataAdapter1.InsertCommand.Connection.Open()
        OleDbDataAdapter1.InsertCommand.ExecuteNonQuery()
        OleDbDataAdapter1.Update(DataSet11, "Main")
        DataSet11.AcceptChanges()
        OleDbDataAdapter1.InsertCommand.Connection.Close()
        OleDbDataAdapter1.Fill(DataSet11)


Это сообщение отредактировал(а) Суровый - 14.7.2010, 14:42
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума VB .NET
diadiavova
  • Прежде чем задать вопрос, воспользуйтесь поиском: возможно Ваш вопрос уже обсуждался и на него был получен ответ.
  • Если такой же вопрос не найден, не стоит задавать свой вопрос в любую тему, создайте новую.
  • Заголовок темы должен отображать ее суть.
  • Содержание поста должно описывать проблему понятно, но в то же время, по возможности, лаконично. Сначала следует описать суть вопроса, потом можно привести пример кода, не вынуждайте других участников угадывать в чем Ваша проблема - телепатов здесь нет.
  • Будьте взаимно вежливы и дружелюбны.
  • При оформлении сообщений используйте форматирование, примеры кода заключайте в теги [CODE=vbnet][/CODE].
  • Также ознакомьтесь с общими правилами, действующими на всем форуме.
  • Если вопрос решен, не забывайте помечать тему решенной(вверху темы есть ссылка). Кроме того, если Вы хотите отблагодарить участников, оказавших помощь в решении, можно повысить им репутацию, в случае, если у Вас менее 100 сообщений в форуме и функция изменения репутации Вам недоступна, можете написать сюда.
  • Общие вопросы по программированию на платформе .NET обсуждаются здесь.
  • Литература по VB .NET обсуждается здесь.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0787 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.