Технология Microsoft ADO.NET



Вызов хранимых процедур, содержащих несколько SQL-конструкций


Хранимая процедура может содержать несколько SQL-конструкций, определяющих работу приложения. При ее вызове возникает задача распределения данных, получаемых от разных конструкций. Запускаем Visual Studio .NET, переходим на вкладку Server Explorer, раскрываем узел базы BDTur_firm2. Щелкаем правой кнопкой на узле Stored Procedures и в появившемся меню выбираем "New Stored Procedure". Процедура proc_NextResult будет состоять из двух конструкций: первая будет возвращать содержимое таблицы "Туристы", а вторая - содержимое таблицы "Туры":

CREATE PROCEDURE proc_NextResult AS SET NOCOUNT ON SELECT *FROM Туристы SELECT * FROM Туры RETURN

После сохранения процедуры создайте новое Windows-приложение VisualNextResult. Перетаскиваем на форму элемент управления ListBox, его свойству Dock устанавливаем значение Bottom. Добавляем элемент Splitter (разделитель), свойству Dock которого также устанавливаем значение Bottom. Наконец, добавляем еще один элемент ListBox, свойству Dock которого устанавливаем значение Fill. Из окна Server Explorer перетаскиваем на форму только что созданную процедуру proc_NextResult. В классе формы добавляем пространство имен для работы с базой:

using System.Data.SqlClient;

Наша задача: в первый элемент ListBox вывести несколько произвольных столбцов таблицы "Туры", а во второй - несколько столбцов таблицы "Туристы". Конструктор формы будет иметь следующий вид:

public Form1() { InitializeComponent(); sqlConnection1.Open(); SqlDataReader dataReader = sqlCommand1.ExecuteReader(); while(dataReader.Read()) { listBox2.Items.Add(dataReader.GetString(1)+" "+dataReader.GetString(2)); } dataReader.NextResult(); while(dataReader.Read()) { listBox1.Items.Add(dataReader.GetString(1) + ". Дополнительная информация: "+dataReader.GetString(3)); } dataReader.Close(); sqlConnection1.Close(); }

Метод GetString объекта DataReader позволяет получать содержимое столбца c заданным индексом, приведенное к типу String.


Содержание  Назад  Вперед