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


* При перепечатке материалов ссылка на 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

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

Создание экземпляров пользовательских типов
Объект Graphics
Языки программирования .NET
Свойства-наборы
Активация и деактивация команд меню
Извлечение типизированных данных с помощью объекта DataReader
Применение классов Debug и Trace
Обработка событий клавиатуры на уровне формы
Реализация свойств
Распространение приложений через Интернет
Локальные функции
Решения .NET
Стратегия оптимизации
Защита приложения
Примеси (mixin)
| .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 31


     



Rambler's Top100

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

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