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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Загрузка отношений в DataSet 
:(
    Опции темы
MFSham
  Дата 26.10.2007, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Есть БД с несколькими таблицами. Таблицы между собой связаны отношениями. Хотелось бы загрузить эти пару таблиц с этими же отношениями в DataSet.

Загрузить сами таблицы не проблема. Например так :
Код
string strSql = "SELECT * FROM ClassNames;";
            OleDbDataAdapter dbAdapter = new OleDbDataAdapter(strSql, con);
            dbAdapter.Fill(this.DS, "ClassNames");
            // и так несколько таблиц

Но таким образом кроме сухих данных в DataSete ничего не будет. Каким образом (и возможно ли это) загрузить отношения между таблицами? 

Ведь когда в проект добавляешь схему DataSet и указываешь ему саму БД, то показывает студия все с отношениями между таблицами. Значит наверное каким-то образом можно все организовать. Ручками конечно можно, но это не выход.
--------------------
Без ветра трава неподвижна. Без программ компьютеры бесполезны.
PM MAIL   Вверх
thomas
Дата 26.10.2007, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: 35
Всего: 65



MFSham, 
Цитата

Ручками конечно можно, но это не выход.

Это как раз выход. Потому как из приведенного кусочка кода можно сделать вывод, что дизайнером не пользуемся, а делаем все "ручками". Значит и связи между таблицами добавляем ПРОГРАММНО.

Другой вариант, все делать через тайпед ДатаСет и тейблАдаптеры. Т.е. в дизайнере. И там же, добавлять связи.

Либо то, либо другое.  smile 


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
tol05
Дата 26.10.2007, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

Репутация: 11
Всего: 170



а вот так не получается?
Код

string strSql = "SELECT * FROM ClassNames;";
OleDbDataAdapter dbAdapter = new OleDbDataAdapter(strSql, con);
dbAdapter.FillSchema(this.DS, SchemaType.Source);
DataRelationCollection relations = this.DS.Relations;
dbAdapter.Fill(this.DS, "ClassNames");
// и так несколько таблиц


Это сообщение отредактировал(а) tol05 - 26.10.2007, 20:01


--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
MFSham
Дата 29.10.2007, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



tol05, спасибо за код, немного помогло.

Схему в проекте использовать можно. 
Т.е. есть БД, есть в проекте схема этой БД. Но нельзя использовать компонент DataSet. Ведь когда его используешь, то можно указывать, какой DataSet нужен: типизированный или нетипизированный. Так вот, мне нужно DataSet который я создаю ручками в коде, превратить в типизированный DataSet. Че-то я пытаюсь и никак :(
--------------------
Без ветра трава неподвижна. Без программ компьютеры бесполезны.
PM MAIL   Вверх
MFSham
Дата 29.10.2007, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Я наверное разобрался smile

По ходу надо объявлять DataSet так:
Код

public SchoolDataSet DS; // где SchoolDataSet - имя схемы

и все работает, и DataSet типизированный smile
это хоть правильно, а то может я перепутал чего?

--------------------
Без ветра трава неподвижна. Без программ компьютеры бесполезны.
PM MAIL   Вверх
thomas
Дата 29.10.2007, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: 35
Всего: 65



MFSham, 
Привет.
Цитата

мне нужно DataSet который я создаю ручками в коде, превратить в типизированный DataSet. Че-то я пытаюсь и никак :( 

А почему не воспользоваться стандартными методами ДатаСета
Код

Private ds As DataSet = New DataSet() 'обьявил ДатаСет
'и где надо "сделал" его тайпед на основании схемы
        Try
            ds.ReadXmlSchema("D:\MyProjects\Request.xsd")
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try


В C# смысл такой же, только пишеться чуть по другому


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

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

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

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


 




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


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

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