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

質問編集履歴

7

修正

2017/12/01 04:52

投稿

xss
xss

スコア36

title CHANGED
File without changes
body CHANGED
@@ -57,6 +57,8 @@
57
57
 
58
58
  Return arrDataStorage
59
59
 
60
+ End Function
61
+
60
62
  ```
61
63
  '追記:
62
64
  '何故Array(String)型の2次元配列なのではなく、ArrayList型の2次元配列を作りたい理由として、

6

改善

2017/12/01 04:52

投稿

xss
xss

スコア36

title CHANGED
File without changes
body CHANGED
@@ -1,4 +1,7 @@
1
1
  ###前提・実現したいこと
2
+ お世話になります。
3
+ 浅い知識でうまくいかず困ってます。。
4
+
2
5
  DataTable型のgetDataStorageにDBから取得したレコードを格納します。
3
6
  中身の例:
4
7
  |name|age|gender|
@@ -23,8 +26,9 @@
23
26
  ```
24
27
  エラー BC30311 型 'String' の値を 'ArrayList' に変換できません。
25
28
 
29
+ Array型だとこのようなエラーになってしまう為ArrayList型にしたいです。
26
30
  'エラー Option Strict On では、遅延バインディングを使用できません。
27
- For Each bbb As DictionaryEntry In   DirectCast(arrDataStorage(rowsCount), Hashtable)
31
+ DirectCast(arrDataStorage(rowsCount), Hashtable)
28
32
 
29
33
  ```
30
34
 

5

修正

2017/12/01 04:42

投稿

xss
xss

スコア36

title CHANGED
File without changes
body CHANGED
@@ -22,11 +22,11 @@
22
22
 
23
23
  ```
24
24
  エラー BC30311 型 'String' の値を 'ArrayList' に変換できません。
25
- ```
25
+
26
26
  'エラー Option Strict On では、遅延バインディングを使用できません。
27
27
  For Each bbb As DictionaryEntry In   DirectCast(arrDataStorage(rowsCount), Hashtable)
28
+
28
29
  ```
29
- ```
30
30
 
31
31
  ###該当のソースコード
32
32
  ```

4

追記

2017/12/01 04:33

投稿

xss
xss

スコア36

title CHANGED
File without changes
body CHANGED
@@ -22,22 +22,25 @@
22
22
 
23
23
  ```
24
24
  エラー BC30311 型 'String' の値を 'ArrayList' に変換できません。
25
-
26
25
  ```
26
+ 'エラー Option Strict On では、遅延バインディングを使用できません。
27
+ For Each bbb As DictionaryEntry In   DirectCast(arrDataStorage(rowsCount), Hashtable)
28
+ ```
29
+ ```
27
30
 
28
31
  ###該当のソースコード
29
32
  ```
30
- '共通処理
33
+ '共通処理 ☆ここをArrayからArrayListにしたい。
31
34
  Dim arr1 As Array
32
35
  arr1 = aaaa(引数1,引数2)
33
- 'ArrayList型2次元配列を作る関数
36
+ 'ArrayList型2次元配列を作る関数               ☆変更点As Array→ArrayListにしたい。
34
- Private Function aaaa(ByVal 引数1 As String,ByVal 引数2 As String)As Array
37
+ Private Function aaaa(ByVal 引数1 As String,ByVal 引数2 As String)As Array 
35
38
 
36
39
  'DataTable型のgetDataStorageを宣言
37
40
  Dim getDataStorage As New DataTable
38
41
  getDataStorage = DBからレコードを取得(引数1,引数2)
39
42
 
40
- 'ArrayList型の2次元配列であるarrDataStorageを宣言
43
+ 'ArrayList型の2次元配列であるarrDataStorageを宣言 ☆変更点 Array→ArrayListにしたい。
41
44
  Dim arrDataStorage(getDataStorage.Rows.Count - 1, getDataStorage.Columns.Count - 1) As ArrayList
42
45
      'DataTableをArrayList型二次元配列に格納する
43
46
  For x As Integer = 0 To getDataStorage.Rows.Count - 1
@@ -52,16 +55,16 @@
52
55
 
53
56
  ```
54
57
  '追記:
55
- '何故String型の2次元配列なのではなく、ArrayList型の2次元配列を作りたい理由として、
58
+ '何故Array(String)型の2次元配列なのではなく、ArrayList型の2次元配列を作りたい理由として、
56
59
  '後ほど作ったArrayList型の2次元配列をここでHashtable型にキャストしてFor Eachを回したいからです。
57
60
  ```
58
61
  For rowsCount = 0 To ArrayList型の変数.Count - 1
59
62
     For Each aaa As DictionaryEntry In DirectCast(ArrayList型の変数(rowsCount), Hashtable)
60
-                       '☆ここでHashtableにキャストしたい
63
+                       '☆ここでHashtableにキャストしたいがArray型だとエラーになります。
61
64
  For Each bbb As DictionaryEntry In   DirectCast(arrDataStorage(rowsCount), Hashtable)
62
65
 
63
66
 
64
- 'Next
67
+ Next
65
68
 
66
69
  Next
67
70
 

3

訂正

2017/12/01 04:32

投稿

xss
xss

スコア36

title CHANGED
File without changes
body CHANGED
@@ -30,9 +30,8 @@
30
30
  '共通処理
31
31
  Dim arr1 As Array
32
32
  arr1 = aaaa(引数1,引数2)
33
-
34
33
  'ArrayList型2次元配列を作る関数
35
- private Function aaaa(ByVal 引数1 As String,ByVal 引数2 As String)As Array
34
+ Private Function aaaa(ByVal 引数1 As String,ByVal 引数2 As String)As Array
36
35
 
37
36
  'DataTable型のgetDataStorageを宣言
38
37
  Dim getDataStorage As New DataTable

2

追記

2017/12/01 04:25

投稿

xss
xss

スコア36

title CHANGED
File without changes
body CHANGED
@@ -17,6 +17,7 @@
17
17
 
18
18
  どなたかご教授をよろしくお願いします。
19
19
 
20
+
20
21
  ###発生している問題・エラーメッセージ
21
22
 
22
23
  ```
@@ -26,6 +27,13 @@
26
27
 
27
28
  ###該当のソースコード
28
29
  ```
30
+ '共通処理
31
+ Dim arr1 As Array
32
+ arr1 = aaaa(引数1,引数2)
33
+
34
+ 'ArrayList型2次元配列を作る関数
35
+ private Function aaaa(ByVal 引数1 As String,ByVal 引数2 As String)As Array
36
+
29
37
  'DataTable型のgetDataStorageを宣言
30
38
  Dim getDataStorage As New DataTable
31
39
  getDataStorage = DBからレコードを取得(引数1,引数2)
@@ -41,8 +49,26 @@
41
49
  Next
42
50
  Next
43
51
 
52
+ Return arrDataStorage
53
+
44
54
  ```
55
+ '追記:
56
+ '何故String型の2次元配列なのではなく、ArrayList型の2次元配列を作りたい理由として、
57
+ '後ほど作ったArrayList型の2次元配列をここでHashtable型にキャストしてFor Eachを回したいからです。
58
+ ```
59
+ For rowsCount = 0 To ArrayList型の変数.Count - 1
60
+    For Each aaa As DictionaryEntry In DirectCast(ArrayList型の変数(rowsCount), Hashtable)
61
+                       '☆ここでHashtableにキャストしたい
62
+ For Each bbb As DictionaryEntry In   DirectCast(arrDataStorage(rowsCount), Hashtable)
45
63
 
46
64
 
65
+ 'Next
66
+
67
+ Next
68
+
69
+ Next
70
+ ```
71
+
72
+
47
73
  ###補足情報(言語/FW/ツール等のバージョンなど)
48
74
  Vb.NET VisualStudio2017

1

修正

2017/12/01 04:24

投稿

xss
xss

スコア36

title CHANGED
File without changes
body CHANGED
@@ -1,4 +1,3 @@
1
- __イタリックテキスト__
2
1
  ###前提・実現したいこと
3
2
  DataTable型のgetDataStorageにDBから取得したレコードを格納します。
4
3
  中身の例:
@@ -29,8 +28,7 @@
29
28
  ```
30
29
  'DataTable型のgetDataStorageを宣言
31
30
  Dim getDataStorage As New DataTable
32
- 'DBからレコードを取得
33
- getDataStorage = db.GETFUNCTION(引数1,引数2)
31
+ getDataStorage = DBからレコードを取得(引数1,引数2)
34
32
 
35
33
  'ArrayList型の2次元配列であるarrDataStorageを宣言
36
34
  Dim arrDataStorage(getDataStorage.Rows.Count - 1, getDataStorage.Columns.Count - 1) As ArrayList