Имя Пароль
Зарегистрироваться


* При перепечатке материалов ссылка на www.SeoLiga.ru обязательна! RSS



Формирование запросов SQL во время выполнения
8 февраля 2009

Иногда конструкция запроса SQL становится известной только в период выполне-
ния. Например, запрос может использовать строку для поиска, введенную пользо-
вателем, или возврашать столбцы и таблицы, определенные программно в период
выполнения. Для решения этих задач соответствующие команды создают, настраи-
вают и исполняют в период выполнения.
Первый шаг — формирование строки команды. Напишите сначала заготовку ко-
манды; при необходимости заменяйте значения, которые должны быть вставлены в
период выполнения, строковыми переменными; для объединения строк используй-
те оператор конкатенации. Вот пример:
Visual Basic .NET
Dim Cmd As String
Crnd = "SELECT * FROM Employees WHERE Name = "' & aString &
Visual C#
string Crnd;
Cmd = "SELECT * FROM Employees WHERE Name = ' " + aString + ;
Внимание! Любые строковые переменные, передаваемые базе данных при помощи
конструкции WHERE, необходимо заключать в одинарные кавычки ('). Если оди-
нарные кавычки находятся внутри такой переменной, следует заменить их парой
одинарных кавычек ("), в противном случае исполнение запроса закончится неуда-
чей,
У каждого провайдера данных есть конструктор класса Command, позволяющий
устанавливать свойства CommandText и Connection при создании экземпляра Command.
После установки этих свойств вам остается лишь открыть соединение и ис-
полнить команду. Следующий пример демонстрирует получение методом строки
поиска и применение полученной строки для создания и исполнения команды SQL:
Visual Basic .NET
' Этот пример предполагает наличие соединения myConnection и
1 оператора, импортирующего пространство имен System.Data.OleDb.
Public Sub DeleteRecord(aString As String)
Dim Cmd As String
Cmd = "DELETE * FROM Employees WHERE Name = '" & aString &
Теперь нужно передать переменную Cmd как строку команды
и myConnection как объект соединения;
Dim myCommand As New 01eDbCornmand(Cmd, myConnection)
' осталось открыть соединение и исполнить команду.
myConnection.Ореп()
myCommand.ExecuteNonQuery(}
' Не забудьте закрыть соединение!
myConnection.Closet)
End Sub
Visual C#
// Этот пример предполагает наличие соединения myConnection и
// оператора, импортирующего пространство имен System. Data. OleDb,
public void DeleteRecord(string aString)
{
string Crnd;
Crnd = "DELETE * FROM Employees WHERE Name = *" + aString + ..... ;
// Указывает Cmd в качестве командной строки, и myConnection
// в качестве подключения
OleDbComrnand myCommand = new 01eDbCommand(Crnd, myConnection);
II осталось открыть соединение и исполнить команду,
myConnection. Ореп();
myCommand . ExecuteNonQuery( ) ;
/7 Не забудете закрыть соединение!
myConnection. CloseO;

Теги: .NET

Статьи по теме:

Создание формы
Модификация и обновление данных
Карринг (currying)
Свойства, доступные только для чтения или только для записи
Рисование простых фигур
Модификаторы доступа для вложенных типов
Добавление элементов управления на панель Toolbox
Применение переменных ссылочных типов
Реализация обработчиков событий
Вызов методов
Применение классов Debug и Trace
Добавление формы к проекту
Работа с элементами управления
Массивы
Стратегия оптимизации
| .NET | Pavel |
 


Пн Вт Ср Чт Пт Сб Вс
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30


     



Rambler's Top100

Данный сайт или домен продается ICQ: 403-353-727

© 2009 Seoliga.ru | .NET | Формирование запросов SQL во время выполнения. Регион сайта: Москва и Санкт-Петербург