2016-10-31 3 views
-1

Код выполняет все, кроме цикла While dataReader.Read(), и я понятия не имею, почему. Ошибок не возникает, он просто не считывает данные с помощью устройства чтения данных. Большое спасибо за полученную помощь.Хотя dataReader.Read() не выполняется

Private Sub BtnFind_Click(sender As Object, e As EventArgs) Handles BtnFind.Click 
    Dim cmd As OleDbCommand 
    Dim myConnection As OleDbConnection 
    Dim text As String = txtTeacherID.Text 
    Dim dataReader As OleDbDataReader 

    Try 
     'selects the information from the row where the column has the teacher ID 
     myConnection = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\My Documents\database.accdb") 
     myConnection.Open() 

     cmd = New OleDbCommand("SELECT * FROM [TMessages] WHERE TeacherID = '" & text & "'", myConnection) 

     dataReader = cmd.ExecuteReader 

     While dataReader.Read() 
      lstItems.Items.Add(dataReader(0)) 
      lstItems.Items.Add(dataReader(0)) 
      lstItems.Items.Add(dataReader(0)) 
      MsgBox("reading") 
     End While 
    Catch 
     MsgBox("Error occured") 
    End Try 
    dataReader.Close() 
    myConnection.Close() 
End Sub 
+0

Используйте только теги, которые есть в тегах. Здесь vba и access-vba бессмысленны. – Steve

+2

[DataReader.Read] (https://msdn.microsoft.com/en-us/library/system.data.idatareader.read (v = vs.110) .aspx) возвращает false если нет данных для чтения. Вы уверены, что запрос успешно возвратил любые строки? –

+0

Единственная причина, по которой не выполнить цикл while, - это то, что у вас нет соответствия для вашей текстовой переменной в базе данных. Кстати, вы уверены, что TeacherID - это поле типа текста в вашей базе данных? – Steve

ответ

0

Как указано в моем комментарии, вы только чтение и то же значение в 3 раза

lstItems.Items.Add(dataReader(0)) 

И считанное значение может быть пустым, попробуйте использовать читателя прочитать все значения ПОЛУЧАЛ в dataReader задумал цикл и проверил все значения.

for i = 0 to dataReader.FieldCount 
Смежные вопросы