Ошибка в коде - dbCommand.ExecuteReader () - PullRequest
0 голосов
/ 11 июля 2011

Может кто-нибудь сказать мне, как мне решить эту ошибку.Ошибка: исключение NullReferenceException было необработанным - «Ссылка на объект не установлена ​​для экземпляра объекта».Строка: Dim reader As OleDbDataReader = dbCommand.ExecuteReader () База данных: MS Access IDE: VB 2010 Express

Imports System.Data.OleDb
Imports System.Data.SqlClient
Imports System


Public Class Form1       
Dim dbConnection As OleDbConnection        
Dim dbCommand As OleDbCommand       
Dim strInsert As String       
Dim dbDataAdapter As OleDbDataAdapter        
Dim ConnectString As String = "Provider = Microsoft.Jet.OLEDB.4.0;" & "Data Source =atg.mdb"

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

End Sub


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

 dbConnection = New OleDbConnection(ConnectString) 'here I use the new keyword to initialize connection  
 dbConnection.Open()
 Dim command As New OleDbCommand("SELECT XX FROM ABC", dbConnection) ' initialize command and pass query and open connection to its constructor  
 Dim reader As OleDbDataReader = dbCommand.ExecuteReader() 'ERROR IS HERE
 Do While (reader.Read()) ' loop here until reader finish reading and add every row to the list box  
        ListBox1.BeginUpdate()
        ListBox1.Items.Add(reader.Item("ABC"))             
        ListBox1.EndUpdate()
    Loop
    reader.Close()
    dbConnection.Close()
End Sub
End Class

Ответы [ 2 ]

1 голос
/ 11 июля 2011

Где вы найдете dbCommand в выражении dbCommand.ExecuteReader (). Вместо этого используйте command.ExecuteReader ().

Вы не инициировали dbCommand. Вы просто удалили его. Что вы сделали, это создали другую переменную с именем command и инициировали ее. Попробуйте с этим

0 голосов
/ 24 мая 2015

Часть программы:

Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'MajDgv()
        Module1.connect()
        Me.fillcombo()
End Sub
Sub fillcombo()

        strsql = "select from Liste des responsables"
        Dim acscmd As New OleDb.OleDbCommand
        Dim acsdr As OleDbDataReader
        acscmd.CommandText = strsql
        acsdr = acscmd.ExecuteReader()""THE PROBLEM IS HERRE he sayed that ExecuteReader: Connection property has not been initialized."""""""
        While (acsdr.Read())
            ComboBox1.Items.Add(acsdr("Nom"))

        End While
        acscmd.Dispose()
        acsdr.Close()

    End Sub
End Class

Я создаю модуль:

Imports System.Data.OleDb
Module Module1
    Public acsconn As New OleDb.OleDbConnection
    Public acsdr As OleDbDataReader
    Public strsql As String
    Sub connect()
        acsconn.ConnectionString = "Provider=Microsoft.ace.oledb.12.0;data source=|datadirectory|\Base1.accdb;"
        acsconn.Open()
    End Sub
End Module
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...