Следующий пример показывает два способа использования объекта DataReader для получения данных. В первой части примера объект DataReader загружает данные в компонент ListBox на Windows-форме (ТОЛЬКО ОДИН столбец author_id таблицы authors).
Во второй части примера рассматривается обработчик события SelectedlndexChanged объекта ListBox. Здесь в предложении SELECT SQL- запроса в качестве ключевого поля (параметра) для выбора единственной записи используется значение au_id. Этот параметр получает значение из списка авторов (объект ListBox1). Поскольку объект DataReader ожидает возвращения только одной записи, то информация из него считывается не в цикле (его метод Read вызывается только один раз). В примере проверяется, что имеется не менее одной записи, путем вызова метод Read в условном операторе IF- End If.
Два обработчика событий используют различные команды данных: в первом случае не используются параметры, во втором случае команде передается один параметр для идентификации автора.
г Листинг 3.4 ' Visual Basic
Private Sub btnLoadListBox_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles btnLoadListBox.Click Dim dreader As System.Data.OleDb.OleDbDataReader OleDbCommand1.CommandText="authors" OleDbCommand1.CommandType=CoinmandType.TableDirect OleDbConnection 1. Open() dreader=01eDbCommand1.ExecuteReader()
While dreader. Read ()
ListBox1.Items.Add(dreader("au_id"))
End While
dreader.Close()
OleDbConnectionl.Close()
End Sub
: Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, 'b ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged Dim dreader As System.Data.OleDb.OleDbDataReader OleDbCommand2. CommandText =^
"SELECT au_id, au_lname, au_fname FROM authors WHERE au_id=?" OleDbCommand2.CornmandType=CommandType. T ext OleDbCommand2.Parameters ( "au_id") . Value=ListBox 1. T ext OleDbConnection1.Open() dreader=0leDbCommand2. ExecuteReader()
If dreader.Read() Then
Опубликовал vovan666
June 28 2013 09:06:03 ·
0 Комментариев ·
3652 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.