Форум программистов, компьютерный форум, киберфорум
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/21: Рейтинг темы: голосов - 21, средняя оценка - 4.67
12 / 12 / 1
Регистрация: 11.01.2013
Сообщений: 150
1

Связь с готовыми mdb и accdb через форму

15.03.2014, 13:03. Просмотров 4045. Ответов 2
Метки нет (Все метки)


Добрый вечер!

Нужна программная реализация подключения к бд, вывод данных из таблицы на форму через datagridview и сохранение новых данных, которые были изменены в datagridview. Пока удалось только вывести данные, но сохранить изменения не удается(((
В прикрепленном скрине, кнопка "Открыть бд" открывает openfiledialog с параметрами и загружает бд. Вот код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
openfiledialog = new OpenFileDialog();
            openfiledialog.Filter = "DataBase (*.mdb; *.accdb)|*.mdb; *.accdb;";
            if (openfiledialog.ShowDialog() == DialogResult.OK)
                {
                    oledbcon = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + openfiledialog.FileName);
                    oledbcon.Open();
                    DataTable datatable = oledbcon.GetSchema("Tables", new string[] { null, null, null, "TABLE" });
                    foreach (DataRow row in datatable.Rows)
                    {
                        string TableName = row["TABLE_NAME"].ToString();
                        comboBox1.Items.Add(TableName);
                    }
                    oledbcon.Close();
                }
Combobox позволяет выбрать таблицу из этой бд и подружает ее в datagridview:
C#
1
2
3
4
5
6
oledbcon.Open();
            OleDbDataAdapter oledbadapter1 = new OleDbDataAdapter(@"SELECT " + comboBox1.SelectedItem + @".* FROM " + comboBox1.SelectedItem, oledbcon);
            DataTable datatable1 = new DataTable();
            oledbadapter1.Fill(datatable1);
            dataGridView1.DataSource = datatable1;
            oledbcon.Close();
Все работает нормально. Но теперь нужно редактировать данные и сохранить их. Создал кнопу "Сохранить " и пробовал сделать так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
oledbcon.Open();
            DataSet ds = new DataSet();
            connP.ConnectionString = ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + openfiledialog.FileName);
            adap = new OleDbDataAdapter("Select * from " + comboBox1.SelectedItem, connP);
            OleDbCommandBuilder bulder = new OleDbCommandBuilder(adap);
            adap.DeleteCommand = bulder.GetDeleteCommand();
            adap.InsertCommand = bulder.GetInsertCommand();
            adap.UpdateCommand = bulder.GetUpdateCommand();
            adap.Fill(ds);
            dataGridView1.DataSource = ds.Tables[comboBox1.SelectedIndex-1];
            adap.Update(ds.Tables[comboBox1.SelectedIndex - 1]);
            oledbcon.Close();
            dataGridView1.Refresh();
Но...без положительного результата( Может кто помочь в данном вопросе?
Большое спасибо!

P.S. Глобальные переменные:
C#
1
2
3
4
OleDbConnection oledbcon;
OpenFileDialog openfiledialog;
OleDbDataAdapter adap = null;
OleDbConnection connP = new OleDbConnection();
И да...открывается только mdb файлБ на accdb программа ругается
0
Миниатюры
Связь с готовыми mdb и accdb через форму  
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.03.2014, 13:03
Ответы с готовыми решениями:

Accdb и mdb
Подскажите как сохранить БД сделанную в Access в формате mdb. Добавлено через 8 минут Как на...

Преобразование - accdb в mdb
Недавно поставил прогу, преобразовывыющую офис ХР в выше разработанное (accdb в mdb) Excel и Word...

Подключение БД mdb или accdb в с++
Здравствуйте. Не могу подключится к БД. Уже было перепробавано огромное количество всего и...

Преобразование из Accdb в mdb (не работают кнопки в форме)
Ребята, кто может мне помочь? Проблема с MS Access базой данных. Изначально база была создана в...

2
12 / 12 / 1
Регистрация: 11.01.2013
Сообщений: 150
05.05.2014, 15:41  [ТС] 2
Может кто помочь...?
0
6918 / 5983 / 2710
Регистрация: 14.04.2014
Сообщений: 25,504
05.05.2014, 18:01 3
Сколько уже объяснял, что Соединение, DataSet и адаптеры надо описать внутри класса один раз и потом во всех функциях использовать.
Вот пример, как accdb открывать DataTable textbox combobox
Сохранение идёт адаптером также как чтение - вместо Fill() используется Update().

В твоём последнем фрагменте строки 6-8 лишние и что ты пытаешь сохранять, если ничего не изменил. Открыл и сразу сохраняешь?
2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.05.2014, 18:01

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Работа в Visual Studio C++ с базами mdb и accdb
Добрый вечер. Решил поработать с базами данных в win32api приложениях. По совету преподавателя...

Связь МК с MDB монетоприемником / MDB купюроприемником
Доброго времени суток. Заказчик изменил ТЗ. И там появилась такая задача, что надо брать купюры...

Как редактировать внешнюю форму *.mdb
В награду от айтишника досталась самописная (насколько я понял) программа для учета движения товара...

Как вытащить данные из ячейки в таблице из mdb на форму
Товарищи, обучаюсь основам по книги фленова, параллельно делаю свою програмулину, но вот впал в...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.