質問編集履歴
8
コメント記入
title
CHANGED
File without changes
|
body
CHANGED
@@ -69,9 +69,56 @@
|
|
69
69
|
dataGridView1.DataSource = source;
|
70
70
|
```
|
71
71
|
追記
|
72
|
-
|
72
|
+
上記のコード実行時に表示されるDataGridViewの内容
|
73
|
-
|
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
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -3,14 +3,14 @@
|
|
3
3
|
こちらの質問の内容について追加で疑問点が出たのでスレッドを再度上げさせていただきます。
|
4
4
|
|
5
5
|
**質問内容**
|
6
|
-
下記のコード
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
DataGridViewに編集
|
13
|
-
受け渡しの流れ
|
6
|
+
下記のコード
|
7
|
+
{1}ResultDT内に結合後のデータ格納用のクラス
|
8
|
+
{2}ResultDTはOracleDTとCsvDTをinnnerjoinで結合しています。
|
9
|
+
string[] names = innnerjoin.Select(r => r.名前).Distinct().ToArray();以降の文で
|
10
|
+
結合結果の内容編集する(名前が連続したとき枝番を作成するというもの)
|
11
|
+
処理をしているのですが、現状のコードだとDataGridViewにinnnerjoinを入れてしまっているので
|
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
修正
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でデータを渡していない場合は小さい箱は
|
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
修正
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
|
-
|
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
修正
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
修正
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
|
-
|
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
修正
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
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,14 +1,12 @@
|
|
1
1
|
[リンク内容](https://teratail.com/questions/311959?whotofollow=)**質問内容**
|
2
2
|
こちらの質問の内容について追加で疑問点が出たのでスレッドを再度上げさせていただきます。
|
3
|
+
下記のコードだと
|
3
|
-
|
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#
|