Студопедия

КАТЕГОРИИ:


Архитектура-(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)

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




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

 

Теперь вернемся к работе с хранимыми процедурами. Выше уже применялись самые простые процедуры (они приводятся в таблице 13), содержимое которых представляло собой, по сути, элементарные запросы на выборку в Windows-приложениях. Применение хранимых процедур с параметрами (таблица 14), как правило, связано с интерфейсом приложения - пользователь имеет возможность вводить значение и затем на основании его получать результат.

Для демонстрации программной работы с хранимыми процедурами создадим новое Windows-приложение, главное окно которого представлено на рис. 93.

В классе формы создаем строку подключения:

string connectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=" +
@"D:\BMИ\For ADO\BDTur_firmSQL2.mdf" +
"Integrated Security=True;Connect Timeout=30;User Instance=True";

В каждом из обработчиков кнопок создаем объекты Connection и Command, определяем их свойства, для последнего добавляем нужные параметры в набор Parameters:

private void btnRun_p1_Click(object sender, System.EventArgs e) {
SqlConnection conn = new SqlConnection();
conn.ConnectionString = connectionString;
SqlCommand myCommand = conn.CreateCommand();
myCommand.CommandType = CommandType.StoredProcedure;
myCommand.CommandText = "[proc_p1]";
string FamilyParameter = Convert.ToString(txtFamily_p1.Text);

myCommand.Parameters.Add("@Фамилия", SqlDbType.NVarChar, 50);
myCommand.Parameters["@Фамилия"].Value = FamilyParameter;
conn.Open();
SqlDataReader dataReader = myCommand.ExecuteReader();
while (dataReader.Read()) {
// Создаем переменные, получаем для них значения из объекта dataReader,
//используя метод GetТипДанных
int TouristID = dataReader.GetInt32(0);
string Family = dataReader.GetString(1);
string FirstName = dataReader.GetString(2);
string MiddleName = dataReader.GetString(3);
//Выводим данные в элемент lbResult_p1
lbResult_p1.Items.Add("Код туриста: " + TouristID+ " Фамилия: " + Family + " Имя: "+ FirstName + " Отчество: " + MiddleName);
}
conn.Close();
} // btnRun_p1_Click

private void btnRun_p5_Click(object sender, System.EventArgs e) {
SqlConnection conn = new SqlConnection();
conn.ConnectionString = connectionString;
SqlCommand myCommand = conn.CreateCommand();
myCommand.CommandType = CommandType.StoredProcedure;
myCommand.CommandText = "[proc_p5]";
string NameTourParameter = Convert.ToString(txtNameTour_p5.Text);
double KursParameter = double.Parse(this.txtKurs_p5.Text);
myCommand.Parameters.Add("@nameTour", SqlDbType.NVarChar, 50);
myCommand.Parameters["@nameTour"].Value = NameTourParameter;
myCommand.Parameters.Add("@Курс", SqlDbType.Float, 8);
myCommand.Parameters["@Курс"].Value = KursParameter;
conn.Open();
int UspeshnoeIzmenenie = myCommand.ExecuteNonQuery();
if (UspeshnoeIzmenenie!=0) {
MessageBox.Show("Изменения внесены", "Изменение записи");
}
else {
MessageBox.Show("Не удалось внести изменения", "Изменение записи");
}
conn.Close();
}

private void btnRun_proc6_Click(object sender, System.EventArgs e) {
SqlConnection conn = new SqlConnection();
conn.ConnectionString = connectionString;
SqlCommand myCommand = conn.CreateCommand();
myCommand.CommandType = CommandType.StoredProcedure;
myCommand.CommandText = "[proc6]";
conn.Open();
string MaxPrice = Convert.ToString(myCommand.ExecuteScalar());
lblPrice_proc6. Text = MaxPrice;
conn.Close();
}

Результаты выполнения данных обработчиков представлены на рисунках 93-95.

Рис. 93. Вызов хранимой процедуры proc_p1

Рис. 94. Вызов хранимой процедуры proc_p5

Рис. 95. Вызов хранимой процедуры proc_p6




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


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


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



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




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