あなたの習慣について教えてください!!

DataTableの値を変数に代入したい
以下のコードのにてDBから『職員ID』・『氏名』を取得しSyokuin(,)の2次元配列に代入したいのですが
Do Loopのところで『オブジェクト参照がオブジェクトインスタンスに設定されていません』とエラーが出ます。
ほかのところでほぼ同様のコードでデータグリッドビューに表示はうまくいくんですが?

Using OleCn As New OleDbConnection(省略)
Using OleCmd As New OleDbCommand(省略)
Using OleDAdp As New OleDb.OleDbDataAdapter()
OleCmd.Connection = OleCn
'配列取得
OleDAdp.SelectCommand = OleCmd
OleDAdp.Fill(OleDSet, "職員")
Dim i As Integer = 0
Dim jAs Integer = 0
Do Until j= OleDSet.Tables("職員").Columns.Count - 1
  Do Until i = OleDSet.Tables("職員").Rows.Count - 1
  Syokuin(j, i) = OleDSet.Tables("職員").Rows(i)(j)
  i += 1
  Loop
j += 1
Loop
End Using
End Using
End Using
ご教授お願いします

A 回答 (1件)

OleDSet.Tables("職員")を DataTable型の変数に代入して


取得したいデータが本当に取得できているのかを確認してみましょう

Dim dt as DataTable
dt = OleDSet.Tables("職員")
として dtが Nothingになっていないかとか
ColumnsやRowsが取得したテーブル通りなのか ・・・
    • good
    • 0
この回答へのお礼

ありがとうございます。

基本的な間違いでした
宣言をDim Syokuin(,) As String
で宣言した後にReDimで要素を決定していなかったためでした。

ExcelVBAではReDimなしで行けたのでVB2008も同じだと思ってました。

お礼日時:2010/01/07 21:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報