Датарелирование с помощью ультрасетки - PullRequest
0 голосов
/ 27 февраля 2012

У меня есть данные, как это:

Quantity   Price   Date     Comment
50         20      10/15    Buy 160
40         15      10/15    Buy 160
60         14      10/15    Buy 160
35         22      10/16    Buy 276
44         16      10/16    Buy 276
78         13      10/16    Buy 276
96         19      10/16    Buy 276
23         2       10/16    Buy 276

Я хочу увидеть это в ультрасетке, где материнские столы

Date Comment
10/15    Buy 160
and
10/16    Buy 276

и дочерний стол:

50         20      10/15    Buy 160
40         15      10/15    Buy 160
60         14      10/15    Buy 160
and
35         22      10/16    Buy 276
44         16      10/16    Buy 276
78         13      10/16    Buy 276
96         19      10/16    Buy 276
23         2       10/16    Buy 276

Я знаю, что должен использовать датарирование, но я не знаю, как Спасибо за вашу помощь

1 Ответ

2 голосов
/ 27 февраля 2012

Во-первых, вам нужно будет заполнить ваш единственный Dataset значением 2 queries в вашем источнике данных (который должен быть, например, хранимой процедурой), чтобы он содержал 2 DataTables, например ::

Select Date, Comment From <yourTable>; -- DataTable1
Select Quantity, Price, Date, Comment From <yourTable>; -- DataTable2

Затем, после того, как набор данных заполнен из вашего DataAdapter в C# кода, вам нужно будет добавить DataRelations к 2 DataTables в вашем Dataset, как показано ниже:

DataColumn[] parentColumns=null;
DataColumn[] childColumns=null;

parentColumns = new DataColumn[] { yourDataset.Tables[0].Columns["Date"], yourDataset.Tables[0].Columns["Comment"]};

childColumns = new DataColumn[] { yourDataset.Tables[1].Columns["Date"], yourDataset.Tables[1].Columns["Comment"]};

yourDataset.Relations.Add(new DataRelation("Date-Comment-Relation", parentColumns, childColumns));

Теперь, привязка над набором данных (yourDataset) к вашей инфраструктуре инфраструктуры должна давать пользовательский интерфейс по вашему желанию ( похоже, если не точно ).

Дайте это попробовать, я надеюсь, что это должно работать, хотя я не пробовал.

...