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



Вызов хранимых процедур с входными и выходными параметрами


На практике наиболее часто используются хранимые процедуры с входными и выходными параметрами (см. таблицу 5.3). Создайте новое приложение и назовите его "VisualOutputParameter". Устанавливаем следующие свойства формы:

Form1, форма, свойствоЗначение
FormBorderStyleFixedSingle
MaximizeBoxFalse
Size400; 96

Добавляем на форму элементы управления и устанавливаем их свойства:

textBox1, свойствоЗначение
NametxtTouristID
Location15; 20
Size120; 20
TextВведите код туриста
label1, свойствоЗначение
NamelblFamily
Location151; 20
Size144; 23
Text
button1, свойствоЗначение
NamebtnRun
Location303; 20
TextЗапуск

Переходим на вкладку Server Explorer, раскрываем узел Stored Procedures базы данных BDTur_firm2 и перетаскиваем процедуру proc_po1. Выделяем появившейся объект sqlCommand1, в окне Properties нажимаем на кнопку

(...) для перехода к редактору SqlParameter Collection Editor. Среда сгенерировала три параметра - @RETURN_VALUE, @TouristID, @LastName (рис. 7.4):

Приложение VisualOutputParameter. Свойство Parameters объекта sqlCommand1

увеличить изображение
Рис. 7.4.  Приложение VisualOutputParameter. Свойство Parameters объекта sqlCommand1

Сообщение об успешности выполнения команды возвращается при помощи параметра @RETURN_VALUE, значение которого для запроса данной хранимой процедуры будет равно нулю. Для процедур, содержащих запросы UPDATE, INSERT и DELETE, возвращаемое значение будет равно числу измененных записей. Обратите внимание, в тексте процедуры мы не создавали этот параметр - среда сгенерировала его автоматически! Два последних параметра были определены при создании хранимой процедуры. Подключаем пространство имен для работы с базой:

using System.Data.SqlClient;

В обработчике кнопки btnRun выводим фамилию искомого туриста в качестве текста надписи:

private void btnRun_Click(object sender, System.EventArgs e) { try { int TouristID = int.Parse(this.txtTouristID.Text); sqlCommand1.Parameters["@TouristID"].Value = TouristID; sqlConnection1.Open(); sqlCommand1.ExecuteScalar(); lblFamily.Text = Convert.ToString(sqlCommand1.Parameters["@LastName"].Value); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } finally { sqlConnection1.Close(); } }




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