У меня есть DataSet с двумя таблицами, связанными ссылкой (Loop_id)

Table1
Column1  Column2        Loop_id
1        ItemCode_AAA     6
2        ItemCode_BBB     8

Table2
Column1       Loop_id
2014-Sep-09   6
2014-Nov-09   8

Как мне получить все столбцы, кроме loop_id, из обеих таблиц в одну таблицу. Результирующая таблица должна выглядеть как

T1_Column1   T1_Column2       T2_Column1
1            ItemCode_AAA     2014-Sep-09
2            ItemCode_BBB     2014-Nov-09

Я использую Net Framework 4.5.

0
TonyP 30 Окт 2014 в 19:44
Я что-то неправильно понял в вашем вопросе? Как мое решение работает для вас?
 – 
crthompson
30 Окт 2014 в 23:49
@paqogomez, запрос не понимает имена столбцов, не компилируется.
 – 
TonyP
31 Окт 2014 в 00:02
Проверьте мои правки. Это должно работать, хотя это не проверено. Возможно, вы могли бы создать скрипту, если она все еще не работает.
 – 
crthompson
31 Окт 2014 в 00:40

2 ответа

Используйте Linq to DataSets:

Чтобы перечислить таблицу, вызовите AsEnumerable.

DataTable table1 = ds.Tables["table1"];
DataTable table2 = ds.Tables["table2"];

var records = (from t1 in table1.AsEnumerable()
               join t2 in table2.AsEnumerable() 
                 on t1.Field<int>("Loop_id") equals t2.Field<int>("Loop_id") 
               select new {T1_Column1 = t1.Field<string>("Column1"),
                           T2_Column2 = t2.Field<string>("Column2"),
                           T2_Column1 = t2.Field<string>("Column1")});
1
crthompson 31 Окт 2014 в 00:38

Используйте Просмотр

Или вы можете использовать присоединиться

SELECT      T1.Column1 AS T1_Col ,   T1.Column2 AS T1_Col , T2.Column1 AS T2_Col

FROM            dbo.Table1 AS T1 RIGHT OUTER JOIN
                         dbo.Table2 AS T2 ON dbo.T1.Loop_id = dbo.T2.Loop_id
0
Salem Ahmed 6 Ноя 2014 в 09:52