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

Получить список таблиц c OleDbConnection

05.07.2010, 22:59. Показов 9780. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Не судите строго за глупые вопросы я ток начинаю изучать C# . Долго искал как же всетаки выдрать список таблиц и вот , то получилост. Большая прозьба полее опытных участников форума помотреть и дать совет .

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
28
29
30
31
32
33
34
35
36
37
try
                {
                    OleDbConnection OleDbConnection = new OleDbConnection(myConnectionString);
                    OleDbConnection.Open();
 
                    DataTable schemaTable;
                    schemaTable = OleDbConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
 
                    OleDbCommand OleDbCommand;
                    OleDbDataReader OleDbDataReader;
                    DataSet DataSet = new DataSet();
 
                    
                    for (int i = 0; i < schemaTable.Rows.Count-1; i++)
                    {
                        
                    String strTable = schemaTable.Rows[i]["TABLE_NAME"].ToString();
                   
                    OleDbCommand = new OleDbCommand("SELECT *FROM " + strTable,OleDbConnection);
                    OleDbDataReader = OleDbCommand.ExecuteReader();
                    DataSet.Tables.Add(strTable);
                    OleDbDataAdapter OleDbDataAdapter = new OleDbDataAdapter("SELECT *FROM " + strTable, OleDbConnection);
                    OleDbDataAdapter.Fill(DataSet, strTable);
                    
                    //MessageBox.Show(strTable);
                    }
                    dataGrid.DataSource = DataSet.DefaultViewManager;
                    
                    OleDbConnection.Close();
 
                }
                catch(Exception ex)
                {
                   MessageBox.Show(ex.Message,"Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
 
            }
Подскажите. Вот этот блок как мне кажется либо OleDbCommand , либо OleDbDataAdapter надо выкинуть. Как быть ?

C#
1
2
3
4
5
                    OleDbCommand = new OleDbCommand("SELECT *FROM " + strTable,OleDbConnection);
                    OleDbDataReader = OleDbCommand.ExecuteReader();
                    DataSet.Tables.Add(strTable);
                    OleDbDataAdapter OleDbDataAdapter = new OleDbDataAdapter("SELECT *FROM " + strTable, OleDbConnection);
                    OleDbDataAdapter.Fill(DataSet, strTable);
Да и еще назрел вопрос , все вроде бы работает но вот связи меду таблиц не загрузились ! Как их загружают ?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.07.2010, 22:59
Ответы с готовыми решениями:

Получить список таблиц c MySQL
Здраствуйте, как сделать запрос &quot;SHOW TABLES;&quot; в c# и что за тип данных вернется? Спасибо

Получить список таблиц из БД MS SQL Server
Хочу получит список таблиц из БД но не получается. Как правильно делать ?? string connStr =...

Как получить список таблиц из базы данных?
C#: как получить список таблиц из базы данных? Допустим есть база test1 в ней таблицы q1, q2, q3....

Проверить наличие таблицы в бд или получить список всех таблиц
Всем привет, нужно проверить содержит ли бд таблицу по ее названию. Как лучше это сделать? через...

8
2096 / 1261 / 171
Регистрация: 01.02.2009
Сообщений: 2,842
05.07.2010, 23:13 2
Посмотри в сторону запроса:
SQL
1
SHOW TABLES
0
4 / 4 / 1
Регистрация: 03.03.2008
Сообщений: 34
05.07.2010, 23:21  [ТС] 3
OleDbCommand OleDbCom= new OleDbCommand("SHOW TABLES", OleDbConnection);
возникает ошибочная инструкция SQL не нравится ему "SHOW TABLES" если я правельно тебя понял !
0
2096 / 1261 / 171
Регистрация: 01.02.2009
Сообщений: 2,842
05.07.2010, 23:25 4
Понял ты меня правильно. Я так понимаю, что ты подключаешься к базе Access? Возможно, что именно accessу не нравится данная команда.
0
4 / 4 / 1
Регистрация: 03.03.2008
Сообщений: 34
05.07.2010, 23:36  [ТС] 5
Да пробую на базе Access . Я думал OleDbConnection без разницы к чему подключаться !

А что по поводу связей между таблицами скажете , почемо они не сохранились ?
0
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
05.07.2010, 23:52 6
kirill29, попробовал "SHOW TABLES" на MS SQL SERVER 2005 Express, не работает
Это может приблуда новых версий ?
0
2096 / 1261 / 171
Регистрация: 01.02.2009
Сообщений: 2,842
06.07.2010, 00:38 7
В общем, немного почитав и порывшись в дебрях интернета, нашел такое решение:
C#
1
2
3
4
5
6
7
8
OleDbConnection connection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source = question_answer.mdb;");
            connection.Open();
            DataTable dt = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
            foreach (DataRow item in dt.Rows)
            {
                listBox1.Items.Add((string)item["TABLE_NAME"]);
            }
            connection.Close();
Добавлено через 12 минут
Цитата Сообщение от nio Посмотреть сообщение
Это может приблуда новых версий ?
Данный запрос применяется в MySQL. Вот его синтаксис: SHOW TABLES

Добавлено через 39 секунд
Видимо, для MS SQL данный запрос не применим
2
4 / 4 / 1
Регистрация: 03.03.2008
Сообщений: 34
06.07.2010, 00:41  [ТС] 8
Да этот вариант по сравнению с моим вообще крутатень ! Завтра опробую . А по связям между таблиц отдельных примочек нет случайно ? Когда через VS создаеш DataSource все работает отлично , а програмным методом все таблицы загружаются , а связи между ними нет .
0
2096 / 1261 / 171
Регистрация: 01.02.2009
Сообщений: 2,842
06.07.2010, 00:53 9
Цитата Сообщение от Plastik-X Посмотреть сообщение
а програмным методом все таблицы загружаются , а связи между ними нет .
ИМХО почитай про DataRelation
1
06.07.2010, 00:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.07.2010, 00:53
Помогаю со студенческими работами здесь

компонент OleDbConnection
глупый вопрос, но все же. у меня visual studio 2008. не могу найти компонент OleDbConnection ))))

Работа с параметрами в OLEDBConnection
Привет всем! Вроде все сделал по инструкции: OleDbConnection ExcelConnection = new...

Список таблиц
Из своего приложения подключаюсь к базе данных Access. Нужно получить список таблиц в ней. Потом...

Список таблиц
Как занести в comboBox список таблиц?


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

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