teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

5

重複例を追加

2017/10/31 01:12

投稿

r-user
r-user

スコア12

title CHANGED
File without changes
body CHANGED
@@ -19,4 +19,24 @@
19
19
 
20
20
  return rows.CopyToDataTable();
21
21
  }
22
- ```
22
+ ```
23
+ #追記
24
+ テーブル1   テーブル2
25
+ A列 B列 C列 A列 B列 D列
26
+ 1 2 a    1 2 d
27
+ 1 2 b
28
+ 1 2 c
29
+ のDataTableがあった場合、理想としては結合後のテーブルは
30
+ テーブル 3
31
+ A列 B列 C列 D列
32
+ 1 2 a d
33
+ 1 2 b d
34
+ 1 2 c d
35
+ なのですが実際は
36
+ テーブル 3
37
+ A列 B列 C列 D列
38
+ 1 2 a d
39
+ 1 2 a d
40
+ 1 2 a d
41
+ になってしまいます。
42
+ 重複させないようにしたいのですが不可能でしょうか?

4

誤字修正

2017/10/31 01:12

投稿

r-user
r-user

スコア12

title CHANGED
File without changes
body CHANGED
@@ -5,6 +5,9 @@
5
5
  LinQのselectの部分が間違っているのではないかと考え、列1つ1つ匿名型で指定する方法も試そうとしましたが、列が多くできれば完結に記載したいのですが調べても答えを見つけられませんでした。
6
6
 
7
7
  拙い文章ではありますが、何卒ご回答の程よろしくお願いします。
8
+ 環境
9
+ OS:windows7
10
+ visualstudio:2017
8
11
 
9
12
  ```C#
10
13
  private DataTable dtJoiner(DataTable targetDt, DataTable otherDt)

3

文章修正

2017/10/30 03:58

投稿

r-user
r-user

スコア12

title CHANGED
@@ -1,1 +1,1 @@
1
- DataTableをLINQ使用して結合したい
1
+ LINQ使用してDataTableを結合したい
body CHANGED
@@ -1,7 +1,11 @@
1
1
  表題通り、2つのDataTableを結合したいのです。
2
+
3
+ DataTable1に列ABCが含まれており、DataTable2に列ABDが含まれていたとしたら、結合し列ABCDのDataTableを作成したいのです。
2
- 2つキーが一致していたら結合させるとう結合条件なのですが、どこ間違っているのか全く見当もつかない状態です。
4
+ 列A,Bが一致していたら結合させいのですが、下記のコードだとDataTable1そのままってきます。
3
- よろしくお願いします。
5
+ LinQのselectの部分が間違ってるのではないかと考え、列1つ1つ匿名型で指定する方法も試そうとしましたが、列が多くできれば完結に記載したいのでが調べても答えを見つけられませんでした
4
6
 
7
+ 拙い文章ではありますが、何卒ご回答の程よろしくお願いします。
8
+
5
9
  ```C#
6
10
  private DataTable dtJoiner(DataTable targetDt, DataTable otherDt)
7
11
  {
@@ -12,7 +16,4 @@
12
16
 
13
17
  return rows.CopyToDataTable();
14
18
  }
15
- ```
19
+ ```
16
- #追記
17
-
18
- テーブル1 列ABC と テーブル2 列ABD を結合し、 列ABCDのDataTableを作成したいのです。

2

例追加

2017/10/30 03:56

投稿

r-user
r-user

スコア12

title CHANGED
File without changes
body CHANGED
@@ -12,4 +12,7 @@
12
12
 
13
13
  return rows.CopyToDataTable();
14
14
  }
15
- ```
15
+ ```
16
+ #追記
17
+
18
+ テーブル1 列ABC と テーブル2 列ABD を結合し、 列ABCDのDataTableを作成したいのです。

1

コードタグを使用していなかった点を修正

2017/10/30 02:43

投稿

r-user
r-user

スコア12

title CHANGED
File without changes
body CHANGED
@@ -1,13 +1,15 @@
1
1
  表題通り、2つのDataTableを結合したいのです。
2
2
  2つのキーが一致していたら結合させるという結合条件なのですが、どこが間違っているのか全く見当もつかない状態です。
3
+ よろしくお願いします。
4
+
5
+ ```C#
3
- よろしくお願いします。``` private DataTable dtJoiner(DataTable targetDt, DataTable otherDt)
6
+ private DataTable dtJoiner(DataTable targetDt, DataTable otherDt)
4
7
  {
5
8
  var rows = from targetDtRow in targetDt.AsEnumerable()
6
9
  join otherDtRow in otherDt.AsEnumerable()
7
- on new { senku = targetDtRow.Field<string>("線区"), ekijun = targetDtRow.Field<string>("駅順") } equals new { senku = otherDtRow.Field<Int32>("線区").ToString(), ekijun = otherDtRow.Field<Int32>("駅順").ToString() }
10
+ on new { a= targetDtRow.Field<string>("A"), b= targetDtRow.Field<string>("B") } equals new { a= otherDtRow.Field<Int32>("A").ToString(), b= otherDtRow.Field<Int32>("B").ToString() }
8
11
  select targetDtRow;
9
12
 
10
13
  return rows.CopyToDataTable();
11
14
  }
12
- コード
13
15
  ```