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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DataRelation, связь двух таблиц в одной 
:(
    Опции темы
inkognitum
Дата 3.10.2007, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 11.8.2006
Где: г. Набережные Чел ны

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



Добрый день!
Проглядел сеществующие темы, но все не то.
Точнее то но не так smile

Мне надо связать две таблицы и показать их в одной таблице!
Только связь надо организовать программно т.е. кодом.

я делаю так но он ругается :(

Код

            string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\data.mdb;";
            string commandString = "SELECT * FROM table1";
            string commandString2 = "SELECT * FROM table2";

            OleDbConnection myConnection = new OleDbConnection(connectionString);
            myConnection.Open();

            DataSet myDataSet = new DataSet();
            myDataSet.CaseSensitive = false;

            OleDbCommand myCommand = new OleDbCommand();
            myCommand.Connection = myConnection;
            myCommand.CommandText = commandString;

            OleDbDataAdapter DataAdapter = new OleDbDataAdapter();
            DataAdapter.SelectCommand = myCommand;
            DataAdapter.TableMappings.Add("Table", "table1");
            DataAdapter.Fill(myDataSet);
         
            OleDbCommand myCommand2 = new OleDbCommand();
            OleDbDataAdapter DataAdapter2 = new OleDbDataAdapter();
            myCommand2.Connection = myConnection;

            myCommand2.CommandText = commandString2;
            DataAdapter2.SelectCommand = myCommand2;
            DataAdapter2.TableMappings.Add("Table", "table2");
            DataAdapter2.Fill(myDataSet);        

            System.Data.DataColumn dataColumn1;
            System.Data.DataColumn dataColumn2;
            dataColumn1 = myDataSet.Tables["table1"].Columns["id"];
            dataColumn2 = myDataSet.Tables["table2"].Columns["id"];


             System.Data.DataRelation dataRelation;

             dataRelation = new DataRelation("Table",   myDataSet.Tables["table1"].Columns["id"], 
                                                        myDataSet.Tables["table2"].Columns["id"]);

             myDataSet.Relations.Add(dataRelation);
      
            DataViewManager dataSetView = myDataSet.DefaultViewManager;
            dataGridView1.DataSource = dataSetView;


            dataGridView1.DataMember = "table1";


я сам в .NET совсем зеленый, только начал работать и по этому пример взял из книги... не работает :(  
я знаю что надо таблицы еще как то дизайном связывать но хотелось бы кодом, для меня так удобней. но если еще плюс ко всему покажите как в Accessовской базе сделать связку и как заставить все это работать будет не лишнее!
Заранее спасибо!

Точнее даже не ругается а просто отображает в таблице одну таблицу - table1

Это сообщение отредактировал(а) inkognitum - 3.10.2007, 12:49
--------------------
"Убить всех людей!" (с) Bender
PM MAIL ICQ Skype   Вверх
mr.DUDA
Дата 3.10.2007, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

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



Цитата(inkognitum @  3.10.2007,  12:48 Найти цитируемый пост)
я делаю так но он ругается :(

На чём ругается ? Какой exception ?


--------------------
user posted image
PM MAIL WWW   Вверх
inkognitum
Дата 3.10.2007, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 11.8.2006
Где: г. Набережные Чел ны

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



Не он не ругается а просто выводит table1 и все.
а подчиненую таблицу table2 не отображает.
--------------------
"Убить всех людей!" (с) Bender
PM MAIL ICQ Skype   Вверх
mr.DUDA
Дата 3.10.2007, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

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



Можно руками подобавлять колонки в грид. В смысле, через код.


--------------------
user posted image
PM MAIL WWW   Вверх
inkognitum
Дата 3.10.2007, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 11.8.2006
Где: г. Набережные Чел ны

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



Там просто понимаешь, оформленно красиво... идет строка и рядом со строкой есть кнопочка [+]
на нее нажимаешь и сравнимо с подкоталогом вываливается другая табличка с другими полями но по id подчененая главной строке....типа вот так


[-]  строка1 
           строка подчинения1
           строка подчинения2
           строка подчинения3

[+] строка2
[-] строка2
           строка подчинения1
           строка подчинения1
           строка подчинения1

вот. хотел получить такой же результат.

--------------------
"Убить всех людей!" (с) Bender
PM MAIL ICQ Skype   Вверх
mr.DUDA
Дата 3.10.2007, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

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



А-а, ну так это делается двумя таблицами, и грид настраивается на внешнюю (primary). Если data relation настроен правильно и есть данные в подчинённой таблице (можно проверить, вызвав у строки таблицы GetChildRows), то всё должно заработать автоматически после привязки датасета к гриду.


--------------------
user posted image
PM MAIL WWW   Вверх
inkognitum
Дата 4.10.2007, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 11.8.2006
Где: г. Набережные Чел ны

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



Хорошо попробую.
ТОлько понять не могу как у автора книги с таким кодом все получилось?! О_о
или автор врет?!
--------------------
"Убить всех людей!" (с) Bender
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

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

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


 




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


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

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