2012-04-18 7 views
1

Мне нужна помощь в получении данных из набора данных. Код:Запрос отношений данных с 3 таблицами и добавлением

  DataRelation relation = null; 
      DataColumn table1Column = null; 
      DataColumn table2Column = null; 
      DataColumn table2Column1 = null; 
      DataColumn table3Column = null; 

      table1Column = tlobergeDataSet.Tb_Product.Columns[0]; 
      table2Column = tlobergeDataSet.Tb_Transactions.Columns[2]; 
      table2Column1 = tlobergeDataSet.Tb_Transactions.Columns[1]; 
      table3Column = tlobergeDataSet.Tb_Consumer.Columns[0]; 

      relation = new DataRelation("relation", table1Column, table2Column); 
      tlobergeDataSet.Relations.Add(relation); 

      relation = new DataRelation("relation1", table3Column, table2Column1); 
      tlobergeDataSet.Relations.Add(relation); 

Учитывая название продукта, мне нужно, чтобы заполнить таблицу с каждым отдельным городом и сколько, что продукт продаются как в этом городе (добавить все цены на этот продукт любого потребителя в данном городе)

экс Таблицы:

Таблица продукта:

Prod_ID Name  

1   tv 
2   couch 

Потребительские Таблица:

Con_Id Name City 
---------------------- 
1   Gray New York 
2   Joe  Chicago 
3   Steve Madison 

Сделки Таблица

Tran_Id Con_ID Prod_ID Price 
------------------------------------- 
1   2   1   900 
2   1   2   300 
3   1   1   900 

Необходимое Таблица

City  Total Sales 
---------------------- 
New York 1200 
Chicago 900 
Madison 0 

ответ

2

попробовать это, теперь это испытывается

var query = from consumer in Tb_Consumer.AsEnumerable() 
      select new 
      { 
       CityName = consumer.Field<string>("City"), 
       //Name of relationship i.e. relation1 is important here 
       Sales = consumer.GetChildRows("relation1").Sum(tx=> tx.Field<decimal>("Price")) 
      }; 

var datatable = new DataTable(); 
col = new DataColumn("City"); 
datatable.Columns.Add(col); 
col = new DataColumn("TotalSales"); 
datatable.Columns.Add(col); 

foreach (var item in query.ToList()) 
{ 
    var newrow = datatable.NewRow(); 
    newrow["City"] = item.CityName; 
    newrow["TotalSales"] = item.Sales; 
    datatable.Rows.Add(newrow); 
} 
+0

Как я могу использовать это, чтобы поместить информацию в другую таблицу ? table.DataSource = запрос; ? –

+0

Вам просто нужно поставить этот запрос сразу после кода, который вы описали. Этот запрос (переменная, я использовал) вернет вам список типов с параметрами CityName & Sales в качестве свойств. –

+0

Есть ли простой способ установить это как источник данных таблицы? –