none
Data.Reader 搞不定 一直出現未將物件參考設定為執行個體 RRS feed

  • 問題

  •     Sub INITIAL()

            Dim Status(110) As Eng
            Dim cmdstr As String
            cmdstr = "select * from Eng"

            Using Conn As New Odbc.OdbcConnection("Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\DB.mdb")

                Dim cmd As New Odbc.OdbcCommand(cmdstr, Conn)

                Conn.Open()

                Dim Reader As Odbc.OdbcDataReader
                Reader = cmd.ExecuteReader()

                Dim i As Integer = 1
                Try
                    While Reader.Read()
                        Status(i).Eng_SN = Reader.GetString(0)
                                           .
                                           .
                                           .
                                           .
                                           .
                                           .
                                           .
                                           .
                        i = i + 1
                    End While
                Catch ex As Exception
                    MsgBox("讀取錯誤" & vbCrLf & "錯誤訊息:" & ex.Message, MsgBoxStyle.Critical)
                End Try
                Reader.Close()
            End Using
        End Sub
    End Class

    我已經照著MSDN裡面的介紹去設
    可是執行還是會出現"未將物件參考設定為執行個體"

    不知道哪裡出錯了?

    2010年1月23日 上午 05:34

解答

  • 你的Status 陣列有先宣告大小嗎 ?
    在 .Net 程式中, 陣列是必須要初始化的, 如同從類別建立執行個體一般
    請參閱MSDN文件庫
    [HOW TO:初始化陣列變數 ]


    MSDN 文件庫很重要
    問題本身越具體, 越容易得到大家的回應
    回應幫助你的人是一種禮貌, 良好的禮貌有助於激發大家對你問題回應的熱情
    2010年1月23日 上午 06:26

所有回覆

  • 直接按F5執行,看是哪一行變黃色的


    我覺得最有可能出問題的是這行
    Status(i).Eng_SN = Reader.GetString(0)

    原因是你的Status陣列裡面都是空的
    2010年1月23日 上午 05:56
  • 你的Status 陣列有先宣告大小嗎 ?
    在 .Net 程式中, 陣列是必須要初始化的, 如同從類別建立執行個體一般
    請參閱MSDN文件庫
    [HOW TO:初始化陣列變數 ]


    MSDN 文件庫很重要
    問題本身越具體, 越容易得到大家的回應
    回應幫助你的人是一種禮貌, 良好的禮貌有助於激發大家對你問題回應的熱情
    2010年1月23日 上午 06:26
  • HI,

    有可能是陣列大小宣告成110不夠放, 您可以將以下的程式碼:

    Dim Status(110) As Eng

    改成:

    Dim Status As New List(Of Eng)

    然後再試試看.
    2010年1月23日 上午 08:35
  • Hi,

    您的問題解決了嗎?


    Lolota
    微軟技術支援中心 CSS - http://www.dotblogs.com.tw/lolota
    2010年1月28日 上午 08:16
  • 恩恩


    後來果然是我沒有初始化

    重新宣告 NEW 就解決了


    感謝大家的指導 ^^

    2010年1月28日 下午 02:00