質問編集履歴
4
いただいた回答を受けての改善、その実行結果を記載
title
CHANGED
File without changes
|
body
CHANGED
@@ -6,19 +6,17 @@
|
|
6
6
|
|
7
7
|

|
8
8
|
|
9
|
+
※いただいた回答のご指摘を反映させ、変数宣言でDouble型からDecimal型へ変更、ラベルコントロールへの表示処理にあたってString型への変換を行なって実行しましたが、
|
9
|
-
|
10
|
+
valueAのみ正しい結果が表示され、valueBからvalueFまでの値については依然 0 のままでした。
|
10
11
|
|
11
|
-
|
12
|
+

|
12
|
-
「型 'System.Decimal' のオブジェクトを型 'System.String' にキャストできません」
|
13
|
-
と表示されていました。
|
14
13
|
|
14
|
+
配列に読み込む部分で繰り返し処理に問題があるのかとも考えましたが、
|
15
|
-
|
15
|
+
初級者ゆえ解決策が思い浮かびません。
|
16
16
|
|
17
|
+
関数定義と呼び出し、取得した値を配列に読み込む処理の記述をはじめ、誤りをご指摘いただきたいです。
|
18
|
+
どうぞよろしくお願いします。
|
17
19
|
|
18
|
-
また、関数定義と呼び出し、また取得した値を配列に読み込む処理の記述について不安があるため、誤りほかご指摘いただきたいです。
|
19
|
-
|
20
|
-
初級者ですので、どうぞよろしくお願いします。
|
21
|
-
|
22
20
|
```ここに言語を入力
|
23
21
|
|
24
22
|
Imports System.Data.SqlClient
|
@@ -29,19 +27,19 @@
|
|
29
27
|
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
|
30
28
|
|
31
29
|
'SQLserverから値を取得する関数呼び出し
|
32
|
-
Dim values() As
|
30
|
+
Dim values() As Decimal = Getvalues()
|
33
31
|
|
34
|
-
valueA_Lbl.Text = values(0)
|
32
|
+
valueA_Lbl.Text = values(0).ToString()
|
35
|
-
valueB_Lbl.Text = values(1)
|
33
|
+
valueB_Lbl.Text = values(1).ToString()
|
36
|
-
valueC_Lbl.Text = values(2)
|
34
|
+
valueC_Lbl.Text = values(2).ToString()
|
37
|
-
valueD_Lbl.Text = values(3)
|
35
|
+
valueD_Lbl.Text = values(3).ToString()
|
38
|
-
valueE_Lbl.Text = values(4)
|
36
|
+
valueE_Lbl.Text = values(4).ToString()
|
39
|
-
valueF_Lbl.Text = values(5)
|
37
|
+
valueF_Lbl.Text = values(5).ToString()
|
40
38
|
|
41
39
|
End Sub
|
42
40
|
|
43
41
|
'データベースから値を取得する関数
|
44
|
-
Private Function Getvalues() As
|
42
|
+
Private Function Getvalues() As Decimal()
|
45
43
|
|
46
44
|
Dim result(5) As Double
|
47
45
|
|
@@ -62,16 +60,14 @@
|
|
62
60
|
Dim command As New SqlCommand(SQL, connection)
|
63
61
|
|
64
62
|
Try
|
65
|
-
|
66
63
|
connection.Open()
|
67
|
-
|
68
64
|
Dim dr As SqlDataReader = command.ExecuteReader()
|
69
65
|
|
70
66
|
---値を配列に読み込む
|
71
67
|
Dim Count As Integer = 0
|
72
|
-
Dim valuelist(5) As
|
68
|
+
Dim valuelist(5) As Decimal
|
73
69
|
While (dr.Read())
|
74
|
-
valuelist(Count) = dr.
|
70
|
+
valuelist(Count) = dr.GetDecimal(Count)
|
75
71
|
Count = Count + 1
|
76
72
|
End While
|
77
73
|
|
3
書式改善
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,15 +1,11 @@
|
|
1
1
|
※Visual Studio 2013、SQL server 2012を使用。OSはWindows7です。
|
2
|
-
|
3
|
-
初級者です。記述不足等ありましたら申し訳ありません、ご指摘ください。
|
4
2
|
以下のようなテーブルから取得した値を関数側で配列に格納し、その配列を戻り値として返したいです。
|
5
|
-
|
6
3
|
取得する値はvalueA から valueFまでの数値のみ(フィールドのデータ型はdecimal(3,2))で、
|
7
4
|
ソース上は確認用にラベルコントロールに値を表示させるよう記述していますが、
|
8
5
|
本来メイン部分では別の値との相関係数算出に使用するつもりです。
|
9
6
|
|
10
7
|

|
11
8
|
|
12
|
-
以下、書籍やネット上の情報を参考に見よう見まねで記述したソースコードです。
|
13
9
|
実行結果がいずれも 0 と表示されており、正しい結果は得られていません。
|
14
10
|
|
15
11
|
※ご指摘を受け、SQL文を改善後、Catch ex As Exception 部分の内容を確認すると、
|
@@ -21,7 +17,7 @@
|
|
21
17
|
|
22
18
|
また、関数定義と呼び出し、また取得した値を配列に読み込む処理の記述について不安があるため、誤りほかご指摘いただきたいです。
|
23
19
|
|
24
|
-
どうぞよろしくお願いします。
|
20
|
+
初級者ですので、どうぞよろしくお願いします。
|
25
21
|
|
26
22
|
```ここに言語を入力
|
27
23
|
|
2
記載修正(実装環境を上部へ、ほか)
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
SQLserverから取得した値を配列に格納し、戻り値にしたいです。
|
1
|
+
SQLserverから取得した値を配列に格納し、関数の戻り値にしたいです。
|
body
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
※Visual Studio 2013、SQL server 2012を使用。OSはWindows7です。
|
2
|
+
|
1
3
|
初級者です。記述不足等ありましたら申し訳ありません、ご指摘ください。
|
2
4
|
以下のようなテーブルから取得した値を関数側で配列に格納し、その配列を戻り値として返したいです。
|
3
5
|
|
@@ -10,19 +12,16 @@
|
|
10
12
|
以下、書籍やネット上の情報を参考に見よう見まねで記述したソースコードです。
|
11
13
|
実行結果がいずれも 0 と表示されており、正しい結果は得られていません。
|
12
14
|
|
13
|
-
特に関数定義と呼び出し、また取得した値を配列に読み込む処理の記述について不安があるため、
|
14
|
-
誤りほかご指摘いただきたいです。
|
15
|
-
|
16
|
-
※SQL文を改善後、Catch ex As Exception 部分の内容を確認すると、
|
15
|
+
※ご指摘を受け、SQL文を改善後、Catch ex As Exception 部分の内容を確認すると、
|
17
16
|
「型 'System.Decimal' のオブジェクトを型 'System.String' にキャストできません」
|
18
17
|
と表示されていました。
|
19
18
|
|
20
19
|
テーブルの列のデータ型設定の問題なんでしょうか。
|
21
20
|
|
22
21
|
|
23
|
-
|
22
|
+
また、関数定義と呼び出し、また取得した値を配列に読み込む処理の記述について不安があるため、誤りほかご指摘いただきたいです。
|
24
23
|
|
25
|
-
|
24
|
+
どうぞよろしくお願いします。
|
26
25
|
|
27
26
|
```ここに言語を入力
|
28
27
|
|
1
いただいた回答を受けて、発生している問題、テーブルの列のデータ型を記載。
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
初級者です。記述不足等ありましたら申し訳ありません、ご指摘ください。
|
2
2
|
以下のようなテーブルから取得した値を関数側で配列に格納し、その配列を戻り値として返したいです。
|
3
3
|
|
4
|
-
取得する値はvalueA から valueFまでの数値のみで、
|
4
|
+
取得する値はvalueA から valueFまでの数値のみ(フィールドのデータ型はdecimal(3,2))で、
|
5
5
|
ソース上は確認用にラベルコントロールに値を表示させるよう記述していますが、
|
6
6
|
本来メイン部分では別の値との相関係数算出に使用するつもりです。
|
7
7
|
|
@@ -13,6 +13,13 @@
|
|
13
13
|
特に関数定義と呼び出し、また取得した値を配列に読み込む処理の記述について不安があるため、
|
14
14
|
誤りほかご指摘いただきたいです。
|
15
15
|
|
16
|
+
※SQL文を改善後、Catch ex As Exception 部分の内容を確認すると、
|
17
|
+
「型 'System.Decimal' のオブジェクトを型 'System.String' にキャストできません」
|
18
|
+
と表示されていました。
|
19
|
+
|
20
|
+
テーブルの列のデータ型設定の問題なんでしょうか。
|
21
|
+
|
22
|
+
|
16
23
|
具体性に欠ける質問ですが、どうぞよろしくお願いします。
|
17
24
|
|
18
25
|
※Visual Studio 2013、SQL server 2012を使用。OSはWindows7です。
|
@@ -49,13 +56,13 @@
|
|
49
56
|
Using connection As New SqlConnection(cnStr)
|
50
57
|
|
51
58
|
Dim SQL As String
|
52
|
-
'特定の「FacilityID」の日付が最新のレコードを取得したいです
|
59
|
+
'特定の「FacilityID」の日付が最新のレコードを取得したいです(改善部分)
|
53
60
|
SQL = "SELECT valueA, valueB, valueC, valueD, valueE, valueF" &
|
54
|
-
"from tbl_valueTest as A" &
|
61
|
+
" from tbl_valueTest as A" &
|
55
|
-
"WHERE Exists(SELECT * from tbl_valueTest" &
|
62
|
+
" WHERE Exists(SELECT * from tbl_valueTest" &
|
56
|
-
"group by FacilityID" &
|
63
|
+
" group by FacilityID" &
|
57
|
-
"having FacilityID = A.FacilityID and MAX(date) = A.date)" &
|
64
|
+
" having FacilityID = A.FacilityID and MAX(date) = A.date)" &
|
58
|
-
"and FacilityID = 1"
|
65
|
+
" and FacilityID = 1"
|
59
66
|
|
60
67
|
Dim command As New SqlCommand(SQL, connection)
|
61
68
|
|