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

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

Создание обработчика для группы событий
Массивы
Замещение членов базового класса в Visual Basic .NET
Создание формируемых элементов управления
Свойства Font, Cursor и BackGroundlmage
Вызов методов
Получение и установка текущей культуры пользовательского интерфейса
Декларативная защита, основанная на ролях
Языки программирования .NET
Создание конфигурационного файла
Пошаговое исполнение кода
Добавление элементов управления на панель Toolbox
Обзор ADO.NET
Локализация формы
Архитектура данных ADO.NET
| .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


     



Данный сайт или домен продается

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