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

質問編集履歴

8

コメント記入

2020/12/24 09:15

投稿

AEGIL
AEGIL

スコア7

title CHANGED
File without changes
body CHANGED
@@ -69,9 +69,56 @@
69
69
  dataGridView1.DataSource = source;
70
70
  ```
71
71
  追記
72
- 閲覧サイト
72
+ 上記のコード実行時に表示されるDataGridViewの内容
73
- https://www.sejuku.net/blog/58436
73
+ source.DataSource=innnerjoin;
74
+ ```
75
+ No,名前,枝番,商品,商品備考
76
+ 1,satou,1,コーラ,
77
+ 2,satou,1,ソーダ,
78
+ 3,kagaya,1,リンゴ,
79
+ 4,gotou,1,コーラ,
80
+ 5,gotou,1,スイカ,
81
+ 6,gotou,1,メロン,
82
+ ```
74
83
 
84
+ 実現したいDataGridViewの内容
85
+ ```
86
+ No,名前,枝番,商品,商品備考
87
+ 1,satou,1,コーラ,
88
+ 2,satou,2,ソーダ,
89
+ 3,kagaya,1,リンゴ,
90
+ 4,gotou,1,コーラ,
91
+ 5,gotou,2,スイカ,
92
+ 6,gotou,3,メロン,
93
+ ```
94
+ 動いているが枝番号が反映されていない
95
+ ```
96
+   string[] names = innnerjoin.Select(r => r.名前).Distinct().ToArray();//2 枝番の編集箇所
97
+ foreach (string name in names)//name=satou names=名前列全件データ
98
+ {
99
+ List<ResultDT> resultsN = innnerjoin.Where(r => r.名前 == name).ToList();
100
+ int i = 1;
101
+ foreach (ResultDT result in resultsN)
102
+ {
103
+ result.枝番号 = i++;
104
+ console.writeline(result.枝番号);
105
+ }
106
+ }
107
+ ```
108
+ 一緒になっている箇所
109
+ ```
110
+      >>枝番号を書き換える前の innnerjoin のことですか?
111
+     var innnerjoin  = from c in csvDTs//1 枝番変更前
112
+ join o in oracleDTs
113
+ on c.code equals o.code
114
+  
115
+        //ソース作成
116
+ BindingSource source = new BindingSource();
117
+ //ソースにinnnerjoin内のデータ挿入
118
+ source.DataSource=innnerjoin; //3 ここで1を呼び出している?
119
+ //DataGridViewにデータを挿入
120
+ dataGridView1.DataSource = source;
121
+ ```
75
122
 
76
123
  **訂正前の文**
77
124
  下記のコードだと

7

修正

2020/12/24 09:15

投稿

AEGIL
AEGIL

スコア7

title CHANGED
File without changes
body CHANGED
@@ -3,14 +3,14 @@
3
3
  こちらの質問の内容について追加で疑問点が出たのでスレッドを再度上げさせていただきます。
4
4
 
5
5
  **質問内容**
6
- 下記のコードだと
7
- ~~public class ResultDT>innnerjoin=oracleDTs+csvDTsということだと思っていて
8
- var innerjoin=... select new ResultDT{}内にデータがあるきその上に属してるResultDT内のstring {get; set;}に値が入り select new ResultDT{}内に該当するものがなときResultDT内のstring {get; set;}は空データの列になる解釈でした~~
9
- ResultDTという箱(public class ResultDT)にDataを入れるための小さい箱(public string {get; set;})があるとしてinnnerjoinはResultDT内の小さい箱の名前と一致するデータを各要素(小さい箱)にいれているイメージでした。なので小さい箱はあってもinnerjoinでデータを渡していない場合は小さい箱は用意されているが値が入っていないのでDataGridViewで表示した際に空の列が作成される想定をしていたのですが現状の書き方(DataGridView=innerjoin)だと
10
-  string[] names = innnerjoin.Select...編集内容はDatagridViewでは繁栄されずに
11
- select new ResultDTで入れた値のみが出ている状なりす。
12
- DataGridViewに編集のデータを入るにあたっどうたらいのでしょうか?
13
- 受け渡しの流れを知りたいです
6
+ 下記のコード
7
+ {1}ResultDT内に結合後のデータ格納用のクラス
8
+ {2}ResultDTはOracleDTCsvDTをinnnerjoinで結合しています
9
+ string[] names = innnerjoin.Select(r => r.名前).Distinct().ToArray();以降の文で
10
+ 結合結果の内容編集する(名前が連続したとき枝番を作成するというもの)
11
+ 処理をしているのですが、現のコードだとDataGridViewinnnerjoinを入れてしっているので
12
+ DataGridViewに表示しようとした際に編集のデータが出力されてします。
13
+ データの受け渡しの流れが理解できてないのどうしたらDataGridViewに編集後の値が反映された状態でResultDT内のべての要素を含んだ表を表示することができるのでしょうか?
14
14
  ```c#
15
15
  public class OracleDT
16
16
  {
@@ -35,8 +35,6 @@
35
35
  public string 商品{get;set;}
36
36
  public string 商品備考{get;set;}//空の列なので値は入れない
37
37
  }
38
-
39
-
40
38
  prrotected void Button(object sender )
41
39
  List<OracleDT> oracleDTs = createOracleList();
42
40
  List<CsvDT> csvDTs = createCsvList();
@@ -69,8 +67,17 @@
69
67
  source.DataSource=innnerjoin;
70
68
  //DataGridViewにデータを挿入
71
69
  dataGridView1.DataSource = source;
72
-
73
70
  ```
74
71
  追記
75
72
  閲覧サイト
76
- https://www.sejuku.net/blog/58436
73
+ https://www.sejuku.net/blog/58436
74
+
75
+
76
+ **訂正前の文**
77
+ 下記のコードだと
78
+ ~~public class ResultDT>innnerjoin=oracleDTs+csvDTsということだと思っていて
79
+ var innerjoin=... select new ResultDT{}内にデータがあるときその上に属してるResultDT内のstring {get; set;}に値が入り select new ResultDT{}内に該当するものがないときResultDT内のstring {get; set;}は空データの列になる解釈でした。
80
+ ResultDTという箱(public class ResultDT)にDataを入れるための小さい箱(public string {get; set;})があるとしてinnnerjoinはResultDT内の小さい箱の名前と一致するデータを各要素(小さい箱)にいれているイメージでした。なので小さい箱はあってもinnerjoinでデータを渡していない場合は小さい箱は用意されているが値が入っていないのでDataGridViewで表示した際に空の列が作成される想定をしていたのですが現状の書き方(DataGridView=innnerjoin)だと
81
+  string[] names = innnerjoin.Select...の編集内容はDatagridViewでは繁栄されずに
82
+ select new ResultDTで入れた値のみが出ている状況になります。
83
+ DataGridViewに編集後のデータを入れるにあたってどうしたらいいのでしょうか?~~

6

修正

2020/12/24 06:32

投稿

AEGIL
AEGIL

スコア7

title CHANGED
File without changes
body CHANGED
@@ -6,7 +6,7 @@
6
6
  下記のコードだと
7
7
  ~~public class ResultDT>innnerjoin=oracleDTs+csvDTsということだと思っていて
8
8
  var innerjoin=... select new ResultDT{}内にデータがあるときその上に属してるResultDT内のstring {get; set;}に値が入り select new ResultDT{}内に該当するものがないときResultDT内のstring {get; set;}は空データの列になる解釈でした。~~
9
- ResultDTという箱(public class ResultDT)にDataを入れるための小さい箱(public string {get; set;})があるとしてinnnerjoinはResultDT内の小さい箱の名前と一致するデータを各要素(小さい箱)にいれているイメージでした。なので小さい箱はあってもinnerjoinでデータを渡していない場合は小さい箱は容易されているが値が入っていないのでDataGridViewで表示した際に空の列が作成される想定をしていたのですが現状の書き方(DatagridView=innerjoin)だと
9
+ ResultDTという箱(public class ResultDT)にDataを入れるための小さい箱(public string {get; set;})があるとしてinnnerjoinはResultDT内の小さい箱の名前と一致するデータを各要素(小さい箱)にいれているイメージでした。なので小さい箱はあってもinnerjoinでデータを渡していない場合は小さい箱は用意されているが値が入っていないのでDataGridViewで表示した際に空の列が作成される想定をしていたのですが現状の書き方(DataGridView=innerjoin)だと
10
10
   string[] names = innnerjoin.Select...の編集内容はDatagridViewでは繁栄されずに
11
11
  select new ResultDTで入れた値のみが出ている状況になります。
12
12
  DataGridViewに編集後のデータを入れるにあたってどうしたらいいのでしょうか?

5

修正

2020/12/24 06:15

投稿

AEGIL
AEGIL

スコア7

title CHANGED
File without changes
body CHANGED
@@ -4,10 +4,10 @@
4
4
 
5
5
  **質問内容**
6
6
  下記のコードだと
7
- public class ResultDT>innnerjoin=oracleDTs+csvDTsということだと思っていて
8
- var innerjoin=... select new ResultDT{}内にデータがあるときその上に属してるResultDT内のstring {get; set;}に値が入り select new ResultDT{}内に該当するものがないときResultDT内のstring {get; set;}は空データの列になる解釈でした。
9
- **問題発生している箇所**
10
- なので現状の書き方(DatagridView=innerjoin)だと編集内容はDatagridViewでは繁栄されずに
7
+ ~~public class ResultDT>innnerjoin=oracleDTs+csvDTsということだと思っていて
8
+ var innerjoin=... select new ResultDT{}内にデータがあるときその上に属してるResultDT内のstring {get; set;}に値が入り select new ResultDT{}内に該当するものがないときResultDT内のstring {get; set;}は空データの列になる解釈でした。~~
9
+ ResultDTという箱(public class ResultDT)にDataを入れるための小さい箱(public string {get; set;})あるとしてinnnerjoinはResultDT内の小さ箱の名前と一致すデータを各要素(小さい箱)にいれているイメージでした。なので小さい箱はあってもinnerjoinでデータを渡していない場合は小さい箱は容易されているが値が入っていないのでDataGridViewで表示した際に空の列が作成される想定をしていたのですが現状の書き方(DatagridView=innerjoin)だと
10
+  string[] names = innnerjoin.Select...の編集内容はDatagridViewでは繁栄されずに
11
11
  select new ResultDTで入れた値のみが出ている状況になります。
12
12
  DataGridViewに編集後のデータを入れるにあたってどうしたらいいのでしょうか?
13
13
  受け渡しの流れを知りたいです。

4

修正

2020/12/24 05:12

投稿

AEGIL
AEGIL

スコア7

title CHANGED
File without changes
body CHANGED
@@ -70,4 +70,7 @@
70
70
  //DataGridViewにデータを挿入
71
71
  dataGridView1.DataSource = source;
72
72
 
73
- ```
73
+ ```
74
+ 追記
75
+ 閲覧サイト
76
+ https://www.sejuku.net/blog/58436

3

修正

2020/12/24 05:03

投稿

AEGIL
AEGIL

スコア7

title CHANGED
File without changes
body CHANGED
@@ -1,13 +1,16 @@
1
+ **前提**
1
- [リンク内容](https://teratail.com/questions/311959?whotofollow=)**質問内容**
2
+ [リンク内容](https://teratail.com/questions/311959?whotofollow=)
2
3
  こちらの質問の内容について追加で疑問点が出たのでスレッドを再度上げさせていただきます。
4
+
5
+ **質問内容**
3
6
  下記のコードだと
4
- **public class ResultDT>innnerjoin=oracleDTs+csvDTs**ということだと思っていて
7
+ public class ResultDT>innnerjoin=oracleDTs+csvDTsということだと思っていて
5
- var innerjoin=... select new ResultDT{}内にデータがあるときその上に属してるResultDT内のstring {get; set;}に値が入り select new ResultDT{}内に該当するものがないときResultDT内のstring {get; set;}は空データの列という形という解釈でした。
8
+ var innerjoin=... select new ResultDT{}内にデータがあるときその上に属してるResultDT内のstring {get; set;}に値が入り select new ResultDT{}内に該当するものがないときResultDT内のstring {get; set;}は空データの列になる解釈でした。
6
-
9
+ **問題が発生している箇所**
7
10
  なので現状の書き方(DatagridView=innerjoin)だと編集内容はDatagridViewでは繁栄されずに
8
11
  select new ResultDTで入れた値のみが出ている状況になります。
9
12
  DataGridViewに編集後のデータを入れるにあたってどうしたらいいのでしょうか?
10
-
13
+ 受け渡しの流れを知りたいです。
11
14
  ```c#
12
15
  public class OracleDT
13
16
  {

2

修正

2020/12/24 04:41

投稿

AEGIL
AEGIL

スコア7

title CHANGED
File without changes
body CHANGED
@@ -4,11 +4,10 @@
4
4
  **public class ResultDT>innnerjoin=oracleDTs+csvDTs**ということだと思っていて
5
5
  var innerjoin=... select new ResultDT{}内にデータがあるときその上に属してるResultDT内のstring {get; set;}に値が入り select new ResultDT{}内に該当するものがないときResultDT内のstring {get; set;}は空データの列という形という解釈でした。
6
6
 
7
- なので現状の書き方だと編集内容はDatagridViewでは繁栄されていない状況なります。
7
+ なので現状の書き方(DatagridView=innerjoin)だと編集内容はDatagridViewでは繁栄され
8
+ select new ResultDTで入れた値のみが出ている状況になります。
8
9
  DataGridViewに編集後のデータを入れるにあたってどうしたらいいのでしょうか?
9
10
 
10
-
11
-
12
11
  ```c#
13
12
  public class OracleDT
14
13
  {

1

修正

2020/12/24 04:38

投稿

AEGIL
AEGIL

スコア7

title CHANGED
File without changes
body CHANGED
@@ -1,14 +1,12 @@
1
1
  [リンク内容](https://teratail.com/questions/311959?whotofollow=)**質問内容**
2
2
  こちらの質問の内容について追加で疑問点が出たのでスレッドを再度上げさせていただきます。
3
+ 下記のコードだと
3
- 下記のコードだとpublic class ResultDT>innnerjoin=oracleDTs+csvDTsということだと
4
+ **public class ResultDT>innnerjoin=oracleDTs+csvDTs**ということだと思っていて
4
- 思っていて
5
- なので
6
5
  var innerjoin=... select new ResultDT{}内にデータがあるときその上に属してるResultDT内のstring {get; set;}に値が入り select new ResultDT{}内に該当するものがないときResultDT内のstring {get; set;}は空データの列という形という解釈でした。
7
6
 
8
7
  なので現状の書き方だと編集内容はDatagridViewでは繁栄されていない状況になります。
9
8
  DataGridViewに編集後のデータを入れるにあたってどうしたらいいのでしょうか?
10
9
 
11
- **ResultDT>innnerjoin=oracleDTs+csvDTs**
12
10
 
13
11
 
14
12
  ```c#