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



Применение методов объекта Command в Windows-приложениях. Параметризированные запросы


Мы рассмотрели основные методы объекта Command в консольных приложениях. Это дало нам возможность понять синтаксис самих методов, без привязки к какому-либо интерфейсу. Однако, после того как синтаксис стал ясен, возникает вопрос - как же использовать эти методы в реальных приложениях? Понятно, что простое копирование кода в конструктор формы, по сути, не изменит пример. Следовательно, мы должны привязывать вводимые значения, например, к текстовым полям. Но это означает, что параметры строки запроса будут неизвестны до тех пор, пока пользователь не введет соответствующие значения. Например, для метода ExecuteNonQuery строка commandText имела следующий вид:

myCommand.CommandText = "UPDATE Туристы SET Фамилия = 'Сергеева' WHERE Кодтуриста = 3";

Если мы создадим приложение, где пользователь будет вводить фамилию и код туриста, то мы не можем заранее указать, какие это будут значения. Логически запрос можно представить примерно так:

myCommand.CommandText = "UPDATE Туристы SET Фамилия = 'Какая-то_фамилия,_которую_введет_пользователь' WHERE Кодтуриста = Какой-то_код,_который_введет_пользователь";

Для решения таких задач, которые возникли еще в самом начале разработки языка SQL, были придуманы параметризированные запросы. В них неизвестные значения заменяются параметрами. Вот так:

myCommand.CommandText = "UPDATE Туристы SET Фамилия = @Family WHERE Кодтуриста = @TouristID";

Здесь @Family (обратите внимание, пишется без кавычек!) - параметр для неизвестного значения фамилии, @TouristID - параметр для неизвестного значения кода туриста. Теперь мы можем привязывать параметры к тексту, вводимому пользователем. Создайте новое Windows-приложение и назовите его "ExamWinExecuteNonQuery". Устанавливаем следующие свойства формы:

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

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

gropBox1, свойствоЗначение
Location16; 16
Size296; 112
TextПример UPDATE
gropBox2, свойство Значение
Location 320; 16
Size 280; 176
Text Пример INSERT
gropBox3, свойство Значение
Location 16; 136
Size 296; 56
Text Пример DELETE
button1, свойство Значение
Name btnUpdate
Location 80; 80
Text Обновить
button2, свойство Значение
Name btnInsert
Location 88; 144
Text Добавить
button3, свойство Значение
Name BtnDelete
Location 208; 24
Text Удалить
textBox1, свойство Значение
Name TxtTouristIDUpdate
Location 16; 24
Size 224; 20
Text Введите код туриста
textBox2, свойство Значение
Name TxtFamilyUpdate
Location 16; 56
Size 224; 20
Text Введите фамилию туриста
textBox3, свойство Значение
Name TxtTouristIDInsert
Location 16; 24
Size 224; 20
Text Введите код туриста
textBox4, свойство Значение
Name TxtFamilyInsert
Location 16; 56
Size 224; 20
Text Введите фамилию туриста
textBox5, свойство Значение
Name TxtFirstNameInsert
Location 16; 88
Size 224; 20
Text Введите имя туриста
textBox6, свойство Значение
Name TxtMiddleNameInsert
Location 16; 120
Size 224; 20
Text Введите отчество туриста
textBox7, свойство Значение
Name txtTouristIDDelete
Location 8; 24
Size 192; 20
Text Введите код туриста для удаления




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