- •Лекция 4 «Работа с бд Microsoft sql Server без разрыва соединения (связный уровень ado.Net)»
- •1. Создание соединения с источником данных
- •Конструкторы
- •Свойства
- •События
- •2. Работа с базой данных с помощью sql-запросов. Выборка, добавление, удаление и обновление данных
- •Конструкторы
- •Свойства
- •Сравнение DataReader и DataSet:
- •Чтение данных из DataReader:
- •Цикл по всем записям: Для перебора и вывода на консоль всех записей в DataReader, вы можете использовать цикл while, как показано в следующем примере кода:
- •Использование DataSets и DataReaders:
- •4. Отображение информации из базы данных с помощью элементов управления ListBox, ComboBox, ListView, DataGridView, DataTable.
4. Отображение информации из базы данных с помощью элементов управления ListBox, ComboBox, ListView, DataGridView, DataTable.
Вывод данных в элемент ListView приводит к достаточно удовлетворительному результату, однако более привычным является вывод в элемент DataGridView. Ранее, при использовании объекта DataSet, источник данных для элемента DataGridView указывался следующим образом:
dataGridView1.DataSource = dataset.Tables["Название_таблицы"].DefaultView;
Или так:
dataGridView1.DataSource = dataset;
Объект DataReader не поддерживает аналогичного вывода – мы не можем связать объекты таким простым образом:
dataGridView1.DataSource = datareader;
Одним из способов вывода является применение дополнительных объектов DataTable. Объект DataTable предназначен для хранения таблицы, полученной из базы данных. Тип DataTable поддерживает также метод CreateDataReader(). Этот метод позволяет получить данные DataTable, используя схему, соответствующую схеме навигации объекта чтения Datareader (только вперед и только для чтения):
DataTableReader dtReader=Turisres.CreateDataReader();
while (dtReader.Read())
{
for (int i=0; i<rdReader.FieldCount; i++)
Console.WriteLine(“dtReader.GetName(i)+” “+ dtReader.GetValue(i).ToString());
Console.WriteLine();
}
dtReader.Close();
DataTableReader работает аналогично объекту чтения поставщика данных. Его можно использовать, когда нужно прочесть данные DataTable без просмотра внутренних коллекций строк и столбцов.
