質問編集履歴

6

エラーの修正など

2016/05/23 01:06

投稿

DinKa
DinKa

score0

test CHANGED
File without changes
test CHANGED
@@ -34,136 +34,152 @@
34
34
 
35
35
  ```C#
36
36
 
37
- private void Bind\(string key\)
37
+ class Bind
38
38
 
39
39
  {
40
40
 
41
- /// アウトプット用のコレクションです。
41
+
42
-
43
- LIST<OUT_PUT> output = new List<OUT_PUT>\(\);
42
+
44
-
45
-
46
-
47
- /// keyが複数指定されることもあるので、まずは1件\(先頭\)だけ取り出す設定にしてみました。
48
-
49
- var key_id = \(from a in HIS
50
-
51
- where key = a\.id1
52
-
53
- select a\.id1\)\.FirstOrDefault\(\);
43
+ private void Bind\(string key\)
54
-
55
-
56
-
57
- /// 目標のid1を検索して、マスタに登録されているcodeと関連付けます。
58
-
59
- var target = from b in HIS
60
-
61
- join c in MST on b\.code1 equals c\.code
62
-
63
- where key_id == b\.id1
64
-
65
- && c\.name == 'A'
66
-
67
- select new{
68
-
69
- key_id,
70
-
71
- A_id = b\.id1,
72
-
73
- A_no1 = b\.no1
74
-
75
- B_no2 = b\.no2
76
-
77
- B_id = b\.id2
78
-
79
- };
80
-
81
-
82
-
83
- /// 1行ずつコレクションに追加していきたいため、foreachで繰り返します。
84
-
85
- foreach\(var SET_A in target\)
86
44
 
87
45
  {
88
46
 
89
- /// 関連付け先codeのマスタがBあるかをチェックして、1件づつ紐づけます。
90
-
91
- var SET_B = \(from d in HIS
92
-
93
- join e in MST on d\.code1 equals e\.code
94
-
95
- where SET_A\.B_id = d\.id1
96
-
97
- && e\.name == 'B'
98
-
99
- select new{
100
-
101
- key_id,
102
-
103
- SET_A\.A_id,
104
-
105
- SET_A\.A_no1,
106
-
107
- SET_A\.B_no2,
108
-
109
- SET_A\.B_id,
110
-
111
- B_no1 = d\.no1,
112
-
113
- C_no2 = d\.no2,
114
-
115
- C_id = d\.id2,
116
-
117
- }\)\.FirstOrDefault\(\);
118
-
119
-
120
-
121
- /// さらに関連付けますが、この時にnoの条件によって、紐付対象が変わっていきます。
122
-
123
- var SET_C = \(from f in HIS
124
-
125
- where \(SET_B\.B_no1 = f\.id1
126
-
127
- && \(SET_B\.B_no2 >= 1 && SET_B\.B_no2 <= 5 && f\.no1 => 6 && f\.no1 <= 10\)
128
-
129
- || \(SET_B\.B_no2 >= 6 && SET_B\.B_no2 <= 10 && f\.no1 => 1 && f\.no1 <= 5\)
130
-
131
- select new{
132
-
133
- key_id,
134
-
135
- SET_B\.A_id,
136
-
137
- SET_B\.A_no1,
138
-
139
- SET_B\.B_no2,
140
-
141
- SET_B\.B_id,
142
-
143
- SET_B\.B_no1,
144
-
145
- SET_B\.C_no2,
146
-
147
- SET_B\.C_id,
148
-
149
- C_no1 = f\.no1,
150
-
151
- D_no2 = f\.no2,
152
-
153
- D_id = f\.id2
154
-
155
- }\)DISTINCT\(\);
156
-
157
-
158
-
159
- /// 1配列づつoutput用のコレクションに追加していきます。
160
-
161
- IF\(SET_C != null\)out_put\.AddRange\(SET_C\);
47
+ /// アウトプット用コレクションです。
48
+
49
+ LIST<OUT_PUT> output = new List<OUT_PUT>\(\);
50
+
51
+ /// keyが複数指定されることもあるので、まずは1件\(先頭\)だけ取り出す設定にしてみました。
52
+
53
+ var key_id = \(from a in HIS
54
+
55
+ where key = a\.id1
56
+
57
+ select a\.id1\)\.FirstOrDefault\(\);
58
+
59
+ /// 目標のid1を検索して、マスタに登録されているcodeと関連付けます。
60
+
61
+ var target = from b in HIS
62
+
63
+ join c in MST on b\.code1 equals c\.code
64
+
65
+ where key_id == b\.id1
66
+
67
+ && c\.name == 'A'
68
+
69
+ select new
70
+
71
+ {
72
+
73
+ key_id,
74
+
75
+ A_id = b\.id1,
76
+
77
+ A_no1 = b\.no1,
78
+
79
+ B_no2 = b\.no2,
80
+
81
+ B_id = b\.id2
82
+
83
+ };
84
+
85
+ /// 1行ずつコレクションに追加していきたいため、foreachで繰り返します。
86
+
87
+ foreach \(var SET_A in target\)
88
+
89
+ {
90
+
91
+ /// 関連付け先のcodeのマスタがBであるかをチェックして、1件づつ紐づけます。
92
+
93
+ var SET_B = \(from d in HIS
94
+
95
+ join e in MST on d\.code1 equals e\.code
96
+
97
+ where SET_A\.B_id = d\.id1
98
+
99
+ && e\.name == 'B'
100
+
101
+ select new
102
+
103
+ {
104
+
105
+ key_id,
106
+
107
+ SET_A\.A_id,
108
+
109
+ SET_A\.A_no1,
110
+
111
+ SET_A\.B_no2,
112
+
113
+ SET_A\.B_id,
114
+
115
+ B_no1 = d\.no1,
116
+
117
+ C_no2 = d\.no2,
118
+
119
+ C_id = d\.id2,
120
+
121
+ }\)\.FirstOrDefault\(\);
122
+
123
+
124
+
125
+ /// さらに関連付けますが、この時にnoの条件によって、紐付対象が変わっていきます。
126
+
127
+ var SET_C = \(from f in HIS
128
+
129
+ where \(SET_B\.B_no1 = f\.id1
130
+
131
+ && \(SET_B\.B_no2 >= 1 && SET_B\.B_no2 <= 5 && f\.no1 >= 6 && f\.no1 <= 10\)
132
+
133
+ || \(SET_B\.B_no2 >= 6 && SET_B\.B_no2 <= 10 && f\.no1 >= 1 && f\.no1 <= 5\)\)
134
+
135
+ select new
136
+
137
+ {
138
+
139
+ key_id,
140
+
141
+ SET_B\.A_id,
142
+
143
+ SET_B\.A_no1,
144
+
145
+ SET_B\.B_no2,
146
+
147
+ SET_B\.B_id,
148
+
149
+ SET_B\.B_no1,
150
+
151
+ SET_B\.C_no2,
152
+
153
+ SET_B\.C_id,
154
+
155
+ C_no1 = f\.no1,
156
+
157
+ D_no2 = f\.no2,
158
+
159
+ D_id = f\.id2
160
+
161
+ }\)\.DISTINCT\(\);
162
+
163
+
164
+
165
+ /// 1配列づつoutput用のコレクションに追加していきます。
166
+
167
+ IF\(SET_C != null\);
168
+
169
+ {
170
+
171
+ out_put\.AddRange\(SET_C\);
172
+
173
+ }
174
+
175
+ }
162
176
 
163
177
  }
164
178
 
165
179
  }
166
180
 
181
+
182
+
167
183
  ```
168
184
 
169
185
 

5

VisualStudio2013にてエラー箇所を修正しました

2016/05/23 00:27

投稿

DinKa
DinKa

score0

test CHANGED
File without changes
test CHANGED
@@ -178,6 +178,8 @@
178
178
 
179
179
  ###補足情報\(言語/FW/ツール等のバージョンなど\)
180
180
 
181
+ C# ASP\.NET MVC Framework、VisualStadio2013、SQLServer2014
182
+
181
183
  質問者のC#のプログラミング能力はあまり高くはありません。
182
184
 
183
185
  著:高橋麻奈のやさしいC#を一通り読みましたが、オブジェクト指向がいまいちまだふんわりした感じです。

4

言語等を補足に追記

2016/05/20 10:29

投稿

DinKa
DinKa

score0

test CHANGED
File without changes
test CHANGED
@@ -188,6 +188,4 @@
188
188
 
189
189
  \[HIS-MST-OUTPUT\]\(http://www\.dotup\.org/uploda/www\.dotup\.org869377\.xls\.html\)
190
190
 
191
- DLパスワード:1212
192
-
193
191
  よろしくお願いいたします。

3

DLパスを不要なところにしました

2016/05/20 08:54

投稿

DinKa
DinKa

score0

test CHANGED
File without changes
test CHANGED
@@ -11,6 +11,10 @@
11
11
 
12
12
 
13
13
  ###発生している問題・エラーメッセージ
14
+
15
+ WHERE句でエラーが発生しています。
16
+
17
+ foreachが邪魔しているような気がしますが、なぜ以下のようなエラーになるのかがわかりません。
14
18
 
15
19
 
16
20
 
@@ -34,17 +38,23 @@
34
38
 
35
39
  {
36
40
 
37
- LIST<OUT_PUT> output = new List<OUT_PUT>\(\);
41
+ /// アウトプット用のコレクションです。
38
42
 
39
-
43
+ LIST<OUT_PUT> output = new List<OUT_PUT>\(\);
44
+
45
+
46
+
47
+ /// keyが複数指定されることもあるので、まずは1件\(先頭\)だけ取り出す設定にしてみました。
40
48
 
41
49
  var key_id = \(from a in HIS
42
50
 
43
51
  where key = a\.id1
44
52
 
45
- select a\.id1\)\.FirstOrDefault\(\);
53
+ select a\.id1\)\.FirstOrDefault\(\);
46
54
 
55
+
56
+
47
-
57
+ /// 目標のid1を検索して、マスタに登録されているcodeと関連付けます。
48
58
 
49
59
  var target = from b in HIS
50
60
 
@@ -68,9 +78,15 @@
68
78
 
69
79
  };
70
80
 
81
+
82
+
83
+ /// 1行ずつコレクションに追加していきたいため、foreachで繰り返します。
84
+
71
85
  foreach\(var SET_A in target\)
72
86
 
73
87
  {
88
+
89
+ /// 関連付け先のcodeのマスタがBであるかをチェックして、1件づつ紐づけます。
74
90
 
75
91
  var SET_B = \(from d in HIS
76
92
 
@@ -100,7 +116,9 @@
100
116
 
101
117
  }\)\.FirstOrDefault\(\);
102
118
 
119
+
120
+
103
-
121
+ /// さらに関連付けますが、この時にnoの条件によって、紐付対象が変わっていきます。
104
122
 
105
123
  var SET_C = \(from f in HIS
106
124
 
@@ -138,6 +156,8 @@
138
156
 
139
157
 
140
158
 
159
+ /// 1配列づつoutput用のコレクションに追加していきます。
160
+
141
161
  IF\(SET_C != null\)out_put\.AddRange\(SET_C\);
142
162
 
143
163
  }

2

ソースにコメントを追加してみました

2016/05/20 08:53

投稿

DinKa
DinKa

score0

test CHANGED
File without changes
test CHANGED
@@ -166,6 +166,8 @@
166
166
 
167
167
  必要なテーブル(HIS、MST)と、出力目標の\(OUTPUT\)のExcelを以下にアップロードしました。
168
168
 
169
- \[HIS-MST-OUTPUT\]\(http://www\.dotup\.org/uploda/www\.dotup\.org869370\.xls\.html\)
169
+ \[HIS-MST-OUTPUT\]\(http://www\.dotup\.org/uploda/www\.dotup\.org869377\.xls\.html\)
170
+
171
+ DLパスワード:1212
170
172
 
171
173
  よろしくお願いいたします。

1

アップローダーのアドレスが違ったため

2016/05/20 08:42

投稿

DinKa
DinKa

score0

test CHANGED
File without changes
test CHANGED
@@ -11,10 +11,6 @@
11
11
 
12
12
 
13
13
  ###発生している問題・エラーメッセージ
14
-
15
- WHERE句でエラーが発生しています。
16
-
17
- foreachが邪魔しているような気がしますが、なぜ以下のようなエラーになるのかがわかりません。
18
14
 
19
15
 
20
16
 
@@ -34,157 +30,119 @@
34
30
 
35
31
  ```C#
36
32
 
37
- class Bind
33
+ private void Bind\(string key\)
38
34
 
39
35
  {
40
36
 
37
+ LIST<OUT_PUT> output = new List<OUT_PUT>\(\);
41
38
 
39
+
42
40
 
41
+ var key_id = \(from a in HIS
42
+
43
+ where key = a\.id1
44
+
43
- private void Bind\(string key\)
45
+ select a\.id1\)\.FirstOrDefault\(\);
46
+
47
+
48
+
49
+ var target = from b in HIS
50
+
51
+ join c in MST on b\.code1 equals c\.code
52
+
53
+ where key_id == b\.id1
54
+
55
+ && c\.name == 'A'
56
+
57
+ select new{
58
+
59
+ key_id,
60
+
61
+ A_id = b\.id1,
62
+
63
+ A_no1 = b\.no1
64
+
65
+ B_no2 = b\.no2
66
+
67
+ B_id = b\.id2
68
+
69
+ };
70
+
71
+ foreach\(var SET_A in target\)
44
72
 
45
73
  {
46
74
 
47
- /// アウトプット用のコレクションです。
75
+ var SET_B = \(from d in HIS
48
76
 
49
- LIST<OUT_PUT> output = new List<OUT_PUT>\(\);
77
+ join e in MST on d\.code1 equals e\.code
50
78
 
51
- /// keyが複数指定されることもあるので、まずは1件\(先頭\)だけ取り出す設定にしてみました。
79
+ where SET_A\.B_id = d\.id1
52
80
 
53
- var key_id = \(from a in HIS
81
+ && e\.name == 'B'
54
82
 
55
- where key = a\.id1
83
+ select new{
56
84
 
57
- select a\.id1\)\.FirstOrDefault\(\);
85
+ key_id,
58
86
 
59
- /// 目標のid1を検索して、マスタに登録されているcodeと関連付けます。
87
+ SET_A\.A_id,
60
88
 
61
- var target = from b in HIS
89
+ SET_A\.A_no1,
62
90
 
63
- join c in MST on b\.code1 equals c\.code
91
+ SET_A\.B_no2,
64
92
 
65
- where key_id == b\.id1
93
+ SET_A\.B_id,
66
94
 
67
- && c\.name == 'A'
95
+ B_no1 = d\.no1,
68
96
 
69
- select new
97
+ C_no2 = d\.no2,
70
98
 
71
- {
99
+ C_id = d\.id2,
72
100
 
73
- key_id,
101
+ }\)\.FirstOrDefault\(\);
74
102
 
75
- A_id = b\.id1,
103
+
76
104
 
77
- A_no1 = b\.no1,
105
+ var SET_C = \(from f in HIS
78
106
 
79
- B_no2 = b\.no2,
107
+ where \(SET_B\.B_no1 = f\.id1
80
108
 
81
- B_id = b\.id2
109
+ && \(SET_B\.B_no2 >= 1 && SET_B\.B_no2 <= 5 && f\.no1 => 6 && f\.no1 <= 10\)
82
110
 
83
- };
111
+ || \(SET_B\.B_no2 >= 6 && SET_B\.B_no2 <= 10 && f\.no1 => 1 && f\.no1 <= 5\)
84
112
 
85
- /// 1行ずつコレクションに追加していきたいため、foreachで繰り返します。
113
+ select new{
86
114
 
87
- foreach \(var SET_A in target\)
115
+ key_id,
88
116
 
89
- {
117
+ SET_B\.A_id,
90
118
 
91
- /// 関連付け先のcodeのマスタがBであるかをチェックして、1件づつ紐づけます。
119
+ SET_B\.A_no1,
92
120
 
93
- var SET_B = \(from d in HIS
121
+ SET_B\.B_no2,
94
122
 
95
- join e in MST on d\.code1 equals e\.code
123
+ SET_B\.B_id,
96
124
 
97
- where SET_A\.B_id = d\.id1
125
+ SET_B\.B_no1,
98
126
 
99
- && e\.name == 'B'
127
+ SET_B\.C_no2,
100
128
 
101
- select new
129
+ SET_B\.C_id,
102
130
 
103
- {
131
+ C_no1 = f\.no1,
104
132
 
105
- key_id,
133
+ D_no2 = f\.no2,
106
134
 
107
- SET_A\.A_id,
135
+ D_id = f\.id2
108
136
 
109
- SET_A\.A_no1,
137
+ }\)DISTINCT\(\);
110
138
 
111
- SET_A\.B_no2,
139
+
112
140
 
113
- SET_A\.B_id,
114
-
115
- B_no1 = d\.no1,
116
-
117
- C_no2 = d\.no2,
118
-
119
- C_id = d\.id2,
120
-
121
- }\)\.FirstOrDefault\(\);
122
-
123
-
124
-
125
- /// さらに関連付けますが、この時にnoの条件によって、紐付対象が変わっていきます。
126
-
127
- var SET_C = \(from f in HIS
128
-
129
- where \(SET_B\.B_no1 = f\.id1
130
-
131
- && \(int\.Parse\(SET_B\.B_no2\) >= 1 && int\.Parse\(SET_B\.B_no2\) <= 5
132
-
133
- && int\.Parse\(f\.no1\) >= 6 && int\.Parse\(f\.no1\) <= 10\)
134
-
135
- || \(int\.Parse\(SET_B\.B_no2\) >= 6 && int\.Parse\(SET_B\.B_no2\) <= 10
136
-
137
- && int\.Parse\(f\.no1\) >= 1 && int\.Parse\(f\.no1\) <= 5\)\)
138
-
139
- select new
140
-
141
- {
142
-
143
- key_id,
144
-
145
- SET_B\.A_id,
146
-
147
- SET_B\.A_no1,
148
-
149
- SET_B\.B_no2,
150
-
151
- SET_B\.B_id,
152
-
153
- SET_B\.B_no1,
154
-
155
- SET_B\.C_no2,
156
-
157
- SET_B\.C_id,
158
-
159
- C_no1 = f\.no1,
160
-
161
- D_no2 = f\.no2,
162
-
163
- D_id = f\.id2
164
-
165
- }\)\.DISTINCT\(\);
166
-
167
-
168
-
169
- /// 1配列づつoutput用のコレクションに追加していきます。
170
-
171
- IF\(SET_C != null\);
172
-
173
- {
174
-
175
- out_put\.AddRange\(SET_C\);
141
+ IF\(SET_C != null\)out_put\.AddRange\(SET_C\);
176
-
177
- }
178
-
179
- }
180
142
 
181
143
  }
182
144
 
183
145
  }
184
-
185
-
186
-
187
-
188
146
 
189
147
  ```
190
148
 
@@ -200,8 +158,6 @@
200
158
 
201
159
  ###補足情報\(言語/FW/ツール等のバージョンなど\)
202
160
 
203
- C# ASP\.NET MVC Framework、VisualStadio2013、SQLServer2014
204
-
205
161
  質問者のC#のプログラミング能力はあまり高くはありません。
206
162
 
207
163
  著:高橋麻奈のやさしいC#を一通り読みましたが、オブジェクト指向がいまいちまだふんわりした感じです。
@@ -210,10 +166,6 @@
210
166
 
211
167
  必要なテーブル(HIS、MST)と、出力目標の\(OUTPUT\)のExcelを以下にアップロードしました。
212
168
 
213
- \[HIS-MST-OUTPUT\]\(http://www\.dotup\.org/uploda/www\.dotup\.org869377\.xls\.html\)
169
+ \[HIS-MST-OUTPUT\]\(http://www\.dotup\.org/uploda/www\.dotup\.org869370\.xls\.html\)
214
170
 
215
171
  よろしくお願いいたします。
216
-
217
-
218
-
219
- ※エラーは一通り修正したものを掲載してあります。修正前をご覧になりたい方は、質問編集履歴を確認してください。