Почему OdbcDataReader требует живого соединения
Этот код выдаст ошибку
Dim mysql As String = " Select roll_no,std_name from student"
Dim cmd As New OdbcCommand(mysql, conn)
conn.Open()
Dim reader As OdbcDataReader = cmd.ExecuteReader
conn.Close()
If reader.HasRows = True Then
End If
но это работает нормально
Dim mysql As String = " Select roll_no,std_name from student"
Dim cmd As New OdbcCommand(mysql, conn)
conn.Open()
Dim reader As OdbcDataReader = cmd.ExecuteReader
If reader.HasRows = True Then
End If
conn.Close()
Почему для чтения данных из базы данных всегда требуется открытое соединение?
1 ответ
Решение
Считыватель предназначен для фактического чтения результатов из БД, а затем закрытия после использования и является самым низким уровнем доступа к БД в ADO.NET.
Я редко использую DataReader и предпочитаю метод DataAdapter.Fill для получения результатов и возврата набора данных / таблицы. За кулисами адаптер открывает накопитель данных и заполняет набор данных. https://msdn.microsoft.com/en-us/library/905keexk(v=vs.110).aspx