Получение нескольких записей из базы данных

Часто в программе бывает необходимо получить из базы данных несколько записей (строк), но как же выполнить такой запрос и правильно обработать полученные данные? Покажем это на примере, используя .NET Framework и язык C#.

Пусть имеется, к примеру, база данных книжного интернет-магазина, созданная в Oracle. Соединение с ней в программе установлено.

Есть номер заказа:

В базе данных имеется таблица, которая называется Состав заказа (Composition). Ее структура представлена ниже.

Имя атрибута Code
ID записи ID
Номер заказа Ord_Num
Код товара в магазине B_Id
Количество книг Com_Number
Цена одной книги Com_Price

Одному заказу может соответствовать несколько записей из таблицы Composition. Давайте получим из этой таблицы все ID книг (B_Id), которые были включены в данный заказ.

Сначала создаем экземпляр класса OracleCommand (строка 1), затем формируем запрос у базе данных и указываем его в свойстве cmd (строка 3), также указываем в свойстве cmd наше подключение к БД (строка 4). Теперь создаем экземпляр класса OracleDataReader и даем ему ссылку на начало исполнения запроса к чтению данных (строка 5). Создаем список bookID, в котором будем хранить полученные ID книг (7). В цикле while (строки 9-12) выполняем чтение и сохранение данных. Число [0] указывает на номер столбца из записи, возвращаемой запросом SELECT; поскольку в нашем запросе указан всего лишь один столбец (B_Id), и нам требуются данные именно из него, то мы указываем номер столбца равный нулю. В конце необходимо закрыть reader (строка 14).

 

Получение нескольких записей из базы данных
5 (100%) 1 vote

Поделиться в соц. сетях:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">