powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Работа с реляционными данными
8 сообщений из 8, страница 1 из 1
Работа с реляционными данными
    #36787784
mrbrooks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Салют.
Работаю с учебной БД pubc от M$ и возник вопрос по работе с DataRelation и отношением "многие - ко - многим".
А именно получения master/detail в двух DataGridView. Делаю так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
var strSql = new StringBuilder("SELECT Au_ID, Au_LName,Au_FName FROM Authors;");
strSql.Append("SELECT Title_ID, Title FROM Titles;");
strSql.Append("SELECT Au_ID, Title_ID FROM TitleAuthor;");

var da = new SqlDataAdapter(strSqlConnect, strBuild.ToString());
da.TableMappings.Add("Table", "Authors");
da.TableMappings.Add("Table1", "Titles");
da.TableMappings.Add("Table2", "TitleAuthor");
var ds = new DataSet();
da.Fill(ds);
ds.Relations.Add("Authors_TitleAuthor",
                     ds.Tables["Authors"].Columns["Au_ID"],
                     ds.Tables["TitleAuthor"].Columns["Au_ID"],
                     false);
ds.Relations.Add("Titles_TitleAuthor",
                     ds.Tables["Titles"].Columns["Title_ID"],
                     ds.Tables["TitleAuthor"].Columns["Title_ID"],
                     false);
							
_gridViewA.DataSource = new BindingSource(ds, "Authors");
//а как получить связанные данные из Titles учитывая справочник TitleAuthor?
_gridViewB.DataSource = new BindingSource(_gridViewA.DataSource, "????");

Подскажите как это сделать. Конечно как вариант можно одним запросом объединить Titles и TitleAuthor и уже отделаться одним DataRelation.
...
Рейтинг: 0 / 0
Работа с реляционными данными
    #36788008
mrbrooks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот так - получаю желаемый результат:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
var strSql = new StringBuilder("SELECT Au_ID, Au_LName,Au_FName FROM Authors;");
strSql.Append("SELECT Au_ID, Title FROM Titles JOIN TitleAuthor ON TitleAuthor.Title_ID = Titles.Title_ID;");
var da = new SqlDataAdapter(strSql.Tostring(), strSqlConnect);
da.TableMappings.Add("Table", "Authors");
da.TableMappings.Add("Table1", "Titles_TitleAuthor");
var ds = new DataSet();
da.Fill(ds);
ds.Relations.Add("Authors_TitleAuthor",
			ds.Tables["Authors"].Columns["Au_ID"],
			ds.Tables["Titles_TitleAuthor"].Columns["Au_ID"],
			false);

_gridViewA.DataSource = new BindingSource(ds, "Authors");
_gridViewB.DataSource = new BindingSource(_gridViewA.DataSource, "Authors_TitleAuthor");

Интересно - на двух DataRelation выходит нельзя построить Master/Detail DataGridView?
...
Рейтинг: 0 / 0
Работа с реляционными данными
    #36788175
mrbrooks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ау. есть кто здесь?

зы. неужели ни кто не в курсе?
...
Рейтинг: 0 / 0
Работа с реляционными данными
    #36792650
mrbrooks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну где же вы - настоящие джедаи?

хелп ми плиз! :)
...
Рейтинг: 0 / 0
Работа с реляционными данными
    #36793098
Фотография Верблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mrbrooksну где же вы - настоящие джедаи?

хелп ми плиз! :)

не работай напрямую с реляционными данными - конверти их в объекты.
...
Рейтинг: 0 / 0
Работа с реляционными данными
    #36793520
mrbrooks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Верблюд
не работай напрямую с реляционными данными - конверти их в объекты.

т.е. заюзать ORM и не париться. я правильно понял тебя камрад?
...
Рейтинг: 0 / 0
Работа с реляционными данными
    #36793848
Фотография Верблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mrbrooksт.е. заюзать ORM и не париться. я правильно понял тебя камрад?

ну да, типа того.
...
Рейтинг: 0 / 0
Работа с реляционными данными
    #36794098
mrbrooks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ок. просто клиент должен работать под .NET 2.0, а там с ORM (Linq2SQL, Entity Framework - др. не знаю) проблематично вроде. Конечно можно использовать строго типизированный DataSet - но это те же яйца только в профиль
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Работа с реляционными данными
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]