-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
Используйте только теги, которые есть в тегах. Здесь vba и access-vba бессмысленны. – Steve
[DataReader.Read] (https://msdn.microsoft.com/en-us/library/system.data.idatareader.read (v = vs.110) .aspx) возвращает false если нет данных для чтения. Вы уверены, что запрос успешно возвратил любые строки? –
Единственная причина, по которой не выполнить цикл while, - это то, что у вас нет соответствия для вашей текстовой переменной в базе данных. Кстати, вы уверены, что TeacherID - это поле типа текста в вашей базе данных? – Steve