Форум программистов, компьютерный форум, киберфорум
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/34: Рейтинг темы: голосов - 34, средняя оценка - 4.76
70 / 69 / 10
Регистрация: 14.06.2009
Сообщений: 310
Записей в блоге: 1
1

Добавить таблицу в mdb используя DataSet

07.07.2010, 22:42. Показов 6203. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Хочу добавить таблицу в пустую Test.mdb

создаю в датасете таблицу

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
27
            DataSet ds = new DataSet();
            ds.DataSetName = "CustomerDatabase";
 
            DataTable custTable = new DataTable();
            custTable.TableName = "Customers";
 
            // this will be the primary key
            DataColumn custId = new DataColumn("CustID", typeof(int));
 
            custId.AutoIncrement = true;
            custId.AutoIncrementSeed = 101;
            custId.AutoIncrementStep = 1;
            custTable.Columns.Add(custId);
 
            // make this the primary key
            custTable.PrimaryKey = new DataColumn[] { custId };
 
            // add some fields for customer data
            custTable.Columns.Add(new DataColumn("Name", typeof(string)));
 
            custTable.Columns.Add(new DataColumn("Phone", typeof(string)));
 
            custTable.Columns.Add(new DataColumn("Email", typeof(string)));
 
            // add the table to the DataSet
            ds.Tables.Add(custTable);
            dataGridView1.DataSource = ds.Tables[0];
далее нужно создать OleDbDataAdapter

C#
1
2
3
           string connectionString = "provider=Microsoft.Jet.OLEDB.4.0;" + "data source=C:\\Test.mdb";
            string Comman = "???"; // какой использовать SQL запрос, когда он мне вроде не нужен вообще?
            OleDbDataAdapter myAdapter = new OleDbDataAdapter(Comman, connectionString);
дальше добавить таблицу в базу данных (т.е. обновить)

C#
1
myAdapter.Update(ds.Tables[0]);
я знаю что ближе к концу я думаю не правильно, в чем ошибка? гуглил форум, находил похожие темы но ответы не те(.

либо создавать таблицу используя SQL запрос? а уже потом с ней работать адаптером и датасетом?

Добавлено через 2 часа 18 минут
решил проблему след образом:
перед обращением к базе, создаю в ней таблицу SQL запросом


C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
string DBp = @"C:\"+ TestName.Text +".mdb";
            bool DB = CreateDB(DBp);
            Querry("CREATE TABLE Params(TestType String, " + "QuestionsCount Int, " + "QuestionsFormat String);",DBp);
 
 
        public void Querry(string Que, string DataBasePath)
        {
            string conn = "provider=Microsoft.Jet.OLEDB.4.0;" + "data source=" + DataBasePath;
            OleDbConnection connect = new OleDbConnection(conn);
            connect.Open();
            using (OleDbCommand command = new OleDbCommand(Que, connect))
            {
                try
                {
                    command.ExecuteNonQuery();
                }
                catch (OleDbException ex)
                {
                    MessageBox.Show("Произошла ошибка при создании таблицы\n" + ex.Message);
                }
            }            
            connect.Close();            
        }
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.07.2010, 22:42
Ответы с готовыми решениями:

Добавить в таблицу Базы Данных данные из таблицы DataSet
Нужна ваш помощь. Пытаюсь добавить в таблицу базы данных все данные из DataSet.Table. Т.е. в...

Передача данных из таблицы одной dataSet в таблицу другой dataSet
Здравствуйте. У меня возникла ситуация когда необходимо передать данные из таблицы одной dataset в...

Не могу добавить запись в таблицу используя EF
Мой код: public void PopulateTables() { using...

Как добавить запись в таблицу БД, используя combobox, к которому привязана другая таблица?
Здравствуйте! Проблема состоит вот в чем: Есть два combobox'a, cboxProdPlatform привязан к...

10
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
08.07.2010, 15:45 2
Цитата Сообщение от EatingPeopleIsFun Посмотреть сообщение
либо создавать таблицу используя SQL запрос? а уже потом с ней работать адаптером и датасетом?
Добавлено через 2 часа 18 минут
решил проблему след образом:
перед обращением к базе, создаю в ней таблицу SQL запросом
Это было единственно правильное решение проблемы
1
0 / 0 / 0
Регистрация: 08.02.2010
Сообщений: 36
09.07.2010, 12:05 3
Цитата Сообщение от EatingPeopleIsFun Посмотреть сообщение


C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
string DBp = @"C:\"+ TestName.Text +".mdb";
            bool DB = CreateDB(DBp);
            Querry("CREATE TABLE Params(TestType String, " + "QuestionsCount Int, " + "QuestionsFormat String);",DBp);
 
 
        public void Querry(string Que, string DataBasePath)
        {
            string conn = "provider=Microsoft.Jet.OLEDB.4.0;" + "data source=" + DataBasePath;
            OleDbConnection connect = new OleDbConnection(conn);
            connect.Open();
            using (OleDbCommand command = new OleDbCommand(Que, connect))
            {
                try
                {
                    command.ExecuteNonQuery();
                }
                catch (OleDbException ex)
                {
                    MessageBox.Show("Произошла ошибка при создании таблицы\n" + ex.Message);
                }
            }            
            connect.Close();            
        }
я в этом еще мало понимаю и у меня возник вопрос:

OleDbConnection connect = new OleDbConnection(conn)

у меня OleDbConnection нет такого, я подключил базу данных с проекту с toolbox перетащил компонент OleDbConnection он у меня на форме назвался как OleDbConnection1, так вот, написать строку OleDbConnection conn=... я не могу у меня OleDbConnection и соответственно после new нет OleDbConnection. Помогите, обьесните. Я тоже хочу создать таблицу в пустой базе данных, но незняю как, если можно поподробнее. Спасибо.
0
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
09.07.2010, 15:28 4
Цитата Сообщение от zeusgod Посмотреть сообщение
перетащил компонент OleDbConnection
-- это класс

Цитата Сообщение от zeusgod Посмотреть сообщение
он у меня на форме назвался как OleDbConnection1
-- а это его экземпляр, он создался автоматически


Цитата Сообщение от zeusgod Посмотреть сообщение
OleDbConnection connect = new OleDbConnection(conn);
Это пример создания экземпляра connect(это его название) класса OleDbConnection "вручную".


Цитата Сообщение от zeusgod Посмотреть сообщение
Помогите, обьесните. Я тоже хочу создать таблицу в пустой базе данных, но незняю как, если можно поподробнее.
Подробное описание данного вопроса прочти в книге по ADO.NET (Сеппа Д.), тема оч большая, лень набирать
0
0 / 0 / 0
Регистрация: 08.02.2010
Сообщений: 36
09.07.2010, 19:22 5
EatingPeopleIsFun,
а откуда взалось вот это:
bool DB = CreateDB(DBp);
и что это такое?
0
70 / 69 / 10
Регистрация: 14.06.2009
Сообщений: 310
Записей в блоге: 1
09.07.2010, 19:34  [ТС] 6
Цитата Сообщение от zeusgod Посмотреть сообщение
EatingPeopleIsFun,
а откуда взалось вот это:
bool DB = CreateDB(DBp);
и что это такое?
CreateDB(DBp)
это моя функция, которая создает пустой mdb файл.
DBp- переменная string в которой содержится путь mdb файлу)
0
0 / 0 / 0
Регистрация: 08.02.2010
Сообщений: 36
09.07.2010, 19:45 7
Цитата Сообщение от EatingPeopleIsFun Посмотреть сообщение
CreateDB(DBp)
это моя функция, которая создает пустой mdb файл.
DBp- переменная string в которой содержится путь mdb файлу)
А она обязательна в данном примере? Допустим у меня уже есть созданная база данных (пустая) в Access, это ведь тот же пустой файл с расширением mdb?

Спасибо, кое что разобрал, получилось создать таблицу в моей базе данных. еще раз спасибо. Будут вопросы обращусь, ОК?
0
70 / 69 / 10
Регистрация: 14.06.2009
Сообщений: 310
Записей в блоге: 1
09.07.2010, 19:48  [ТС] 8
нет не обязательна=) если есть пустая база, можешь спокойно работать с ней, просто в моем задании, нужно делать новые mdb'шки
0
0 / 0 / 0
Регистрация: 08.02.2010
Сообщений: 36
21.07.2010, 23:57 9
EatingPeopleIsFun,
Извеняюсь может за глупый вопрос, но мне нужно вывести в datagrid таблицу, тоесть dataGrid1.DataSource связать с таблицой, любой таблицой, базы данных, как это можно сделать? Если можно с примером. Спасибо.

Добавлено через 11 минут
EatingPeopleIsFun,
Вроде разобрался, вот код:
C#
1
2
3
4
5
6
7
8
9
string DBp = @"test.mdb";
            string conn = "provider=Microsoft.Jet.OLEDB.4.0;" + "data source=" + DBp;
            OleDbConnection connect = new OleDbConnection(conn);
            connect.Open();
            string comm = "SELECT * FROM Params1";
            OleDbDataAdapter myAdapter = new OleDbDataAdapter(comm,conn);
            myAdapter.Fill(dataSet1, "Params1");
            DataTable tr1 = dataSet1.Tables[0];
            dataGrid1.DataSource = tr1;
Правильно, или есть еще варианты?
0
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
22.07.2010, 09:06 10
Необязательно плодить дополнительные переменные, можно сразу так делать:
C#
1
2
3
4
  
OleDbDataAdapter myAdapter = new OleDbDataAdapter("SELECT * FROM Params1", "provider=Microsoft.Jet.OLEDB.4.0; data source=test.mdb");
            myAdapter.Fill(dataSet1, "Params1");
dataGrid1.DataSource = dataSet1.Tables["Params1"];
создание connect тут не требуется, адаптер сам создает подключение перед выборкой и после закрывает его. Посмотри, у тебя connect никак с адаптером не связаны.
0
0 / 0 / 0
Регистрация: 08.02.2010
Сообщений: 36
24.07.2010, 17:41 11
nio, это точно. Спасибо за помощь.
0
24.07.2010, 17:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.07.2010, 17:41
Помогаю со студенческими работами здесь

Запись данных в базу данных mdb с использованием DataAdapter и DataSet
Попробовал сделать Update для таблицы контактов: private void Form1_Load(object sender,...

Связать таблицу DataSet и таблицу БД
Доброго всем дня! Подскажите, пожалуйста, как можно связать таблицу находящуюся в datasete или...

Как правильно добавить строку в mdb файл?
проблема достаточно простая, но не могу найти решения. наверное, не хватает опыта Есть таблица...

Найти таблицу в DataSet по имени
Здравствуйте! Я вношу таблици в DataSet. Подскажите как сделать так что бы если таблица с таким...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru