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


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

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

Извлечение из сопутствующих сборок ресурсов, специфичных для культуры
Создание обработчика для группы событий
Проверка на уровне формы
Переменные методов
Добавление формы к проекту
Локальные функции
Примеси (mixin)
Специальные возможности и логотип «Certified for Windows»
Управление лицензированием элементов управления
Parsing Expression Grammar Support for C# 3.0 Part 1 – PEG Lib and Parser Generator
Замыкания (closure)
Структура .NET-приложений
Использование провайдеров дополнительных свойств
Создание конфигурационного файла
Языки программирования .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 31


     



Rambler's Top100

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

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