Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




 

На практике наиболее часто используются хранимые процедуры с входными и выходными параметрами (см. таблицу 15). Создадим новое Windows- приложение, вид его формы в режиме дизайна показан на рисунке 96.

Рис. 96. Вид формы в режиме дизайна

В классе формы создаем объект Connection:

SqlConnection conn = null;

Обработчик кнопки btnRun принимает следующий вид:

private void btnRun_Click(object sender, System.EventArgs e) {
try {
conn = new SqlConnection();
conn.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=" +
@"D:\BMИ\For ADO\BDTur_firmSQL2.mdf +
"Integrated Security=True;Connect Timeout=30;User Instance=True";
SqlCommand myCommand = conn.CreateCommand();
myCommand.CommandType = CommandType.StoredProcedure;
myCommand.CommandText = "[proc_po1]";
int TouristID = int.Parse(this.txtTouristID.Text);
myCommand.Parameters.Add("@TouristID", SqlDbType.Int, 4);
myCommand.Parameters["@TouristID"].Value = TouristID;
//Необязательная строка, т.к. совпадает со значением по умолчанию.
//myCommand.Parameters["@TouristID"].Direction = ParameterDirection.Input;
myCommand.Parameters.Add("@LastName", SqlDbType.NVarChar, 60);
myCommand.Parameters["@LastName"].Direction = ParameterDirection.Output;
conn.Open();
myCommand.ExecuteScalar();
lblFamily.Text = Convert.ToString(myCommand.Parameters["@LastName"].Value);
}
catch (Exception ex) {
MessageBox.Show(ex.ToString());
} finally {
conn.Close();
}
}

Параметр @LastName был добавлен в набор Parameters, причем его значение output указано в свойстве Direction:

myCommand.Parameters["@LastName"].Direction = ParameterDirection.Output;

Параметр @TouristID является исходным, поэтому для него в свойстве Direction указывается Input. Поскольку это является значением по умолчанию для всех параметров набора Parameters, указывать его явно не нужно. Для параметров, работающих в двустороннем режиме, устанавливается значение InputOutput, для параметров, возвращающих данные о выполнения хранимой процедуры, - ReturnValue.

Результат выполнения приложения показан на рисунке 97.

Рис. 97. Результат выполнения приложения




Поделиться с друзьями:


Дата добавления: 2015-05-09; Просмотров: 395; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.