質問編集履歴
8
コメント記入
test
CHANGED
File without changes
|
test
CHANGED
@@ -140,11 +140,105 @@
|
|
140
140
|
|
141
141
|
追記
|
142
142
|
|
143
|
+
上記のコード実行時に表示されるDataGridViewの内容
|
144
|
+
|
145
|
+
source.DataSource=innnerjoin;
|
146
|
+
|
143
|
-
|
147
|
+
```
|
148
|
+
|
144
|
-
|
149
|
+
No,名前,枝番,商品,商品備考
|
150
|
+
|
151
|
+
1,satou,1,コーラ,
|
152
|
+
|
153
|
+
2,satou,1,ソーダ,
|
154
|
+
|
155
|
+
3,kagaya,1,リンゴ,
|
156
|
+
|
157
|
+
4,gotou,1,コーラ,
|
158
|
+
|
159
|
+
5,gotou,1,スイカ,
|
160
|
+
|
161
|
+
6,gotou,1,メロン,
|
162
|
+
|
163
|
+
```
|
164
|
+
|
165
|
+
|
166
|
+
|
167
|
+
実現したいDataGridViewの内容
|
168
|
+
|
169
|
+
```
|
170
|
+
|
171
|
+
No,名前,枝番,商品,商品備考
|
172
|
+
|
173
|
+
1,satou,1,コーラ,
|
174
|
+
|
175
|
+
2,satou,2,ソーダ,
|
176
|
+
|
177
|
+
3,kagaya,1,リンゴ,
|
178
|
+
|
179
|
+
4,gotou,1,コーラ,
|
180
|
+
|
181
|
+
5,gotou,2,スイカ,
|
182
|
+
|
183
|
+
6,gotou,3,メロン,
|
184
|
+
|
185
|
+
```
|
186
|
+
|
187
|
+
動いているが枝番号が反映されていない
|
188
|
+
|
189
|
+
```
|
190
|
+
|
191
|
+
string[] names = innnerjoin.Select(r => r.名前).Distinct().ToArray();//2 枝番の編集箇所
|
192
|
+
|
193
|
+
foreach (string name in names)//name=satou names=名前列全件データ
|
194
|
+
|
195
|
+
{
|
196
|
+
|
197
|
+
List<ResultDT> resultsN = innnerjoin.Where(r => r.名前 == name).ToList();
|
198
|
+
|
199
|
+
int i = 1;
|
200
|
+
|
201
|
+
foreach (ResultDT result in resultsN)
|
202
|
+
|
203
|
+
{
|
204
|
+
|
205
|
+
result.枝番号 = i++;
|
206
|
+
|
207
|
+
console.writeline(result.枝番号);
|
208
|
+
|
209
|
+
}
|
210
|
+
|
211
|
+
}
|
212
|
+
|
213
|
+
```
|
214
|
+
|
215
|
+
一緒になっている箇所
|
216
|
+
|
217
|
+
```
|
218
|
+
|
219
|
+
>>枝番号を書き換える前の innnerjoin のことですか?
|
220
|
+
|
145
|
-
|
221
|
+
var innnerjoin = from c in csvDTs//1 枝番変更前
|
222
|
+
|
146
|
-
|
223
|
+
join o in oracleDTs
|
224
|
+
|
147
|
-
|
225
|
+
on c.code equals o.code
|
226
|
+
|
227
|
+
|
228
|
+
|
229
|
+
//ソース作成
|
230
|
+
|
231
|
+
BindingSource source = new BindingSource();
|
232
|
+
|
233
|
+
//ソースにinnnerjoin内のデータ挿入
|
234
|
+
|
235
|
+
source.DataSource=innnerjoin; //3 ここで1を呼び出している?
|
236
|
+
|
237
|
+
//DataGridViewにデータを挿入
|
238
|
+
|
239
|
+
dataGridView1.DataSource = source;
|
240
|
+
|
241
|
+
```
|
148
242
|
|
149
243
|
|
150
244
|
|
7
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -8,21 +8,21 @@
|
|
8
8
|
|
9
9
|
**質問内容**
|
10
10
|
|
11
|
-
下記のコード
|
11
|
+
下記のコード
|
12
12
|
|
13
|
-
|
13
|
+
{1}ResultDT内に結合後のデータ格納用のクラス
|
14
14
|
|
15
|
-
|
15
|
+
{2}ResultDTはOracleDTとCsvDTをinnnerjoinで結合しています。
|
16
16
|
|
17
|
-
|
17
|
+
string[] names = innnerjoin.Select(r => r.名前).Distinct().ToArray();以降の文で
|
18
18
|
|
19
|
-
|
19
|
+
結合結果の内容編集する(名前が連続したとき枝番を作成するというもの)
|
20
20
|
|
21
|
-
|
21
|
+
処理をしているのですが、現状のコードだとDataGridViewにinnnerjoinを入れてしまっているので
|
22
22
|
|
23
|
-
DataGridViewに編集
|
23
|
+
DataGridViewに表示しようとした際に編集前のデータが出力されてしまいます。
|
24
24
|
|
25
|
-
受け渡しの流れ
|
25
|
+
データの受け渡しの流れが理解できていないのでどうしたらDataGridViewに編集後の値が反映された状態でResultDT内のすべての要素を含んだ表を表示することができるのでしょうか?
|
26
26
|
|
27
27
|
```c#
|
28
28
|
|
@@ -71,10 +71,6 @@
|
|
71
71
|
public string 商品備考{get;set;}//空の列なので値は入れない
|
72
72
|
|
73
73
|
}
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
74
|
|
79
75
|
prrotected void Button(object sender )
|
80
76
|
|
@@ -140,8 +136,6 @@
|
|
140
136
|
|
141
137
|
dataGridView1.DataSource = source;
|
142
138
|
|
143
|
-
|
144
|
-
|
145
139
|
```
|
146
140
|
|
147
141
|
追記
|
@@ -149,3 +143,23 @@
|
|
149
143
|
閲覧サイト
|
150
144
|
|
151
145
|
https://www.sejuku.net/blog/58436
|
146
|
+
|
147
|
+
|
148
|
+
|
149
|
+
|
150
|
+
|
151
|
+
**訂正前の文**
|
152
|
+
|
153
|
+
下記のコードだと
|
154
|
+
|
155
|
+
~~public class ResultDT>innnerjoin=oracleDTs+csvDTsということだと思っていて
|
156
|
+
|
157
|
+
var innerjoin=... select new ResultDT{}内にデータがあるときその上に属してるResultDT内のstring {get; set;}に値が入り select new ResultDT{}内に該当するものがないときResultDT内のstring {get; set;}は空データの列になる解釈でした。
|
158
|
+
|
159
|
+
ResultDTという箱(public class ResultDT)にDataを入れるための小さい箱(public string {get; set;})があるとしてinnnerjoinはResultDT内の小さい箱の名前と一致するデータを各要素(小さい箱)にいれているイメージでした。なので小さい箱はあってもinnerjoinでデータを渡していない場合は小さい箱は用意されているが値が入っていないのでDataGridViewで表示した際に空の列が作成される想定をしていたのですが現状の書き方(DataGridView=innnerjoin)だと
|
160
|
+
|
161
|
+
string[] names = innnerjoin.Select...の編集内容はDatagridViewでは繁栄されずに
|
162
|
+
|
163
|
+
select new ResultDTで入れた値のみが出ている状況になります。
|
164
|
+
|
165
|
+
DataGridViewに編集後のデータを入れるにあたってどうしたらいいのでしょうか?~~
|
6
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
var innerjoin=... select new ResultDT{}内にデータがあるときその上に属してるResultDT内のstring {get; set;}に値が入り select new ResultDT{}内に該当するものがないときResultDT内のstring {get; set;}は空データの列になる解釈でした。~~
|
16
16
|
|
17
|
-
ResultDTという箱(public class ResultDT)にDataを入れるための小さい箱(public string {get; set;})があるとしてinnnerjoinはResultDT内の小さい箱の名前と一致するデータを各要素(小さい箱)にいれているイメージでした。なので小さい箱はあってもinnerjoinでデータを渡していない場合は小さい箱は
|
17
|
+
ResultDTという箱(public class ResultDT)にDataを入れるための小さい箱(public string {get; set;})があるとしてinnnerjoinはResultDT内の小さい箱の名前と一致するデータを各要素(小さい箱)にいれているイメージでした。なので小さい箱はあってもinnerjoinでデータを渡していない場合は小さい箱は用意されているが値が入っていないのでDataGridViewで表示した際に空の列が作成される想定をしていたのですが現状の書き方(DataGridView=innerjoin)だと
|
18
18
|
|
19
19
|
string[] names = innnerjoin.Select...の編集内容はDatagridViewでは繁栄されずに
|
20
20
|
|
5
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -10,13 +10,13 @@
|
|
10
10
|
|
11
11
|
下記のコードだと
|
12
12
|
|
13
|
-
public class ResultDT>innnerjoin=oracleDTs+csvDTsということだと思っていて
|
13
|
+
~~public class ResultDT>innnerjoin=oracleDTs+csvDTsということだと思っていて
|
14
14
|
|
15
|
-
var innerjoin=... select new ResultDT{}内にデータがあるときその上に属してるResultDT内のstring {get; set;}に値が入り select new ResultDT{}内に該当するものがないときResultDT内のstring {get; set;}は空データの列になる解釈でした。
|
15
|
+
var innerjoin=... select new ResultDT{}内にデータがあるときその上に属してるResultDT内のstring {get; set;}に値が入り select new ResultDT{}内に該当するものがないときResultDT内のstring {get; set;}は空データの列になる解釈でした。~~
|
16
16
|
|
17
|
-
|
17
|
+
ResultDTという箱(public class ResultDT)にDataを入れるための小さい箱(public string {get; set;})があるとしてinnnerjoinはResultDT内の小さい箱の名前と一致するデータを各要素(小さい箱)にいれているイメージでした。なので小さい箱はあってもinnerjoinでデータを渡していない場合は小さい箱は容易されているが値が入っていないのでDataGridViewで表示した際に空の列が作成される想定をしていたのですが現状の書き方(DatagridView=innerjoin)だと
|
18
18
|
|
19
|
-
|
19
|
+
string[] names = innnerjoin.Select...の編集内容はDatagridViewでは繁栄されずに
|
20
20
|
|
21
21
|
select new ResultDTで入れた値のみが出ている状況になります。
|
22
22
|
|
4
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -143,3 +143,9 @@
|
|
143
143
|
|
144
144
|
|
145
145
|
```
|
146
|
+
|
147
|
+
追記
|
148
|
+
|
149
|
+
閲覧サイト
|
150
|
+
|
151
|
+
https://www.sejuku.net/blog/58436
|
3
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,14 +1,20 @@
|
|
1
|
+
**前提**
|
2
|
+
|
1
|
-
[リンク内容](https://teratail.com/questions/311959?whotofollow=)
|
3
|
+
[リンク内容](https://teratail.com/questions/311959?whotofollow=)
|
2
4
|
|
3
5
|
こちらの質問の内容について追加で疑問点が出たのでスレッドを再度上げさせていただきます。
|
4
6
|
|
7
|
+
|
8
|
+
|
9
|
+
**質問内容**
|
10
|
+
|
5
11
|
下記のコードだと
|
6
12
|
|
7
|
-
|
13
|
+
public class ResultDT>innnerjoin=oracleDTs+csvDTsということだと思っていて
|
8
14
|
|
9
|
-
var innerjoin=... select new ResultDT{}内にデータがあるときその上に属してるResultDT内のstring {get; set;}に値が入り select new ResultDT{}内に該当するものがないときResultDT内のstring {get; set;}は空データの列
|
15
|
+
var innerjoin=... select new ResultDT{}内にデータがあるときその上に属してるResultDT内のstring {get; set;}に値が入り select new ResultDT{}内に該当するものがないときResultDT内のstring {get; set;}は空データの列になる解釈でした。
|
10
16
|
|
11
|
-
|
17
|
+
**問題が発生している箇所**
|
12
18
|
|
13
19
|
なので現状の書き方(DatagridView=innerjoin)だと編集内容はDatagridViewでは繁栄されずに
|
14
20
|
|
@@ -16,7 +22,7 @@
|
|
16
22
|
|
17
23
|
DataGridViewに編集後のデータを入れるにあたってどうしたらいいのでしょうか?
|
18
24
|
|
19
|
-
|
25
|
+
受け渡しの流れを知りたいです。
|
20
26
|
|
21
27
|
```c#
|
22
28
|
|
2
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -10,13 +10,11 @@
|
|
10
10
|
|
11
11
|
|
12
12
|
|
13
|
-
なので現状の書き方だと編集内容はDatagridViewでは繁栄され
|
13
|
+
なので現状の書き方(DatagridView=innerjoin)だと編集内容はDatagridViewでは繁栄されずに
|
14
|
+
|
15
|
+
select new ResultDTで入れた値のみが出ている状況になります。
|
14
16
|
|
15
17
|
DataGridViewに編集後のデータを入れるにあたってどうしたらいいのでしょうか?
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
18
|
|
21
19
|
|
22
20
|
|
1
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,11 +2,9 @@
|
|
2
2
|
|
3
3
|
こちらの質問の内容について追加で疑問点が出たのでスレッドを再度上げさせていただきます。
|
4
4
|
|
5
|
-
下記のコードだと
|
5
|
+
下記のコードだと
|
6
6
|
|
7
|
-
思っていて
|
7
|
+
**public class ResultDT>innnerjoin=oracleDTs+csvDTs**ということだと思っていて
|
8
|
-
|
9
|
-
なので
|
10
8
|
|
11
9
|
var innerjoin=... select new ResultDT{}内にデータがあるときその上に属してるResultDT内のstring {get; set;}に値が入り select new ResultDT{}内に該当するものがないときResultDT内のstring {get; set;}は空データの列という形という解釈でした。
|
12
10
|
|
@@ -17,8 +15,6 @@
|
|
17
15
|
DataGridViewに編集後のデータを入れるにあたってどうしたらいいのでしょうか?
|
18
16
|
|
19
17
|
|
20
|
-
|
21
|
-
**ResultDT>innnerjoin=oracleDTs+csvDTs**
|
22
18
|
|
23
19
|
|
24
20
|
|