tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトル配列エラー
記事No9401
投稿日: 2009/09/16(Wed) 10:54
投稿者Sep
配列を使用してDBから取得したデータを格納しようとしています。

2次元配列なので

    Public array_name(,) As String = {}

と宣言しました。

Do While (dr.Read())
    array_name(p, 0) = dr.Item(0).ToString
    array_name(p, 1) = dr.Item(1).ToString
     p = p + 1
Loop

と格納しようとしたところ
「インデックスが配列の境界外です。」とエラーになります。
p も宣言しているし初期化してあります。

配列の設定がおかしいのでしょうか?

[ツリー表示へ]
タイトルRe: 配列エラー
記事No9402
投稿日: 2009/09/16(Wed) 11:43
投稿者魔界の仮面弁士
> 配列を使用してDBから取得したデータを格納しようとしています。
件数が固定の場合には良いですが、固定的で無い場合には、
配列だと扱いにくいと思います。
可能であれば、DataTable (DataSet) で管理することを検討してみてください。
こちらであれば、行数の変化にも柔軟に対応できます。


> 2次元配列なので
>     Public array_name(,) As String = {}
> と宣言しました。
この場合、array_name の要素数はゼロなので(array_name.Length = 0)、
データを格納できません。格納前に配列のサイズを決定する必要があります。

 '構文1
 ReDim array_name(x, y)

 '構文2
 array_name = New String(x, y) {}

なお、上記で生成される要素数(array_name.Length)は「(x + 1) * (y + 1) 個」です。

[ツリー表示へ]