Иногда необходимо параметризировать SQL-запрос. Кроме того,
бывает желательно связать входные и выходные аргументы хранимой процедуры с
переменными программы.
Для того чтобы сделать это, следует определить свойство Parameters (Параметры)
класса SqlCommand, которое является коллекцией экземпляров класса SqlParameter.
Процедура инсталляции, имеющаяся на Web-узле данной книги, добавляет в базу
данных Northwind хранимую процедуру get_customers. To же самое можно выполнить и
вручную с помощью Server Explorer в Visual Studio.NET или SQL Query Analyzer
(Анализатор запросов SQL). Еще один способ — запустить макрос SQL, поставляемый
вместе с примерами к данной книге. Хранимая процедура get_customers
иллюстрирует, как можно использовать простую хранимую процедуру, имеющую один
аргумент, а именно — название компании, и возвращающую идентификатор (ID)
клиента, т.е. указанной компании.
CREATE PROCEDURE get_customers
(dcompanyname nvarchar ( 40), Scustomerid nchar(5) OUTPUT)
AS
select @customerid = CustomerlD from Customers where
CompanyName = @companyname
RETURN
GO
Пример StoredProcedure (Хранимая процедура) демонстрирует, как
это можно сделать.
command = // команда
new SqlCommand("get_customers", conn);
command->CommandType = // команда
CommandType::StoredProcedure;
SqlParameter *p = 0; p = new SqlParameter(
"@companyname",
SqlDbType::NVarChar, 40);
p->Direction = ParameterDirection::Input;
// Направление = Ввод p->set_Value(S"Ernst Handel");
// Эрнст Хандель command->Parameters->Add(p);
// команда-> Параметры-> Добавить
p = new SqlParameter(
"@customerid", SqlDbType::NChar, 5);
p->Direction = ParameterDirection::Output;// Направление = Вывод
command->Parameters->Add(p); // команда-> Параметры-> Добавить command->ExecuteNonQuery();
// команда
Console::WriteLine(
"{0} Customerld = {!}",
command->get_Parameters()-> // команда
get_Item("gcompanyname")->Value, // Значение
command->get_Parameters()-> // команда
get_Item("Scustomerid")->Value) ; // Значение
Каждый отдельный член коллекции SqlParameterCollection,
являющийся объектом SqlParameter, соответствует одному параметру SQL-запроса или
хранимой процедуры. Как показано в примере, параметру не обязательно иметь
какую-либо взаимосвязь с определенной таблицей или столбцом базы данных.
Тем минимумом, который необходимо определить в конструкторе или установкой
свойств, являются имя и тип параметра. Если параметр имеет непостоянную длину,
необходимо также определить его размер.
В приведенном примере к коллекции параметров добавляются два параметра. Первый
соответствует аргументу хранимой процедуры. Второй соответствует возвращаемому
хранимой процедурой значению.
Имя параметра соответствует имени аргумента хранимой процедуры get_customers.
Другие параметры конструктора SqlParameter определяют тип параметра. В первом
случае это строка Unicode переменного размера, длиной до 40 символов. Во втором
— строка Unicode постоянного размера (5 символов). Обозначение SqlDbType :
:NVarChar означает постоянный подлине поток символов Unicode.
Свойство Value (Значение) используется для установки или получения значения
параметра. В нашем примере оно используется для инициализации входного параметра
@companyname, соответствующего аргументу хранимой процедуры. Оно используется
также для получения значения параметра @customerid, соответствующего
возвращаемому хранимой процедурой значению.
Выходной параметр должен быть определен как таковой с помощью свойства Direction
(Направление). В нашем примере параметр @companyname устанавливается как входной
присвоением этому свойству значения ParameterDirection: : Input (Входной
параметр). Аналогично, параметр @customerid устанавливается как выходной
присвоением этому свойству значения ParameterDirection: :Output (Выходной
параметр). Данная операция для выходного параметра должна быть проведена
обязательно, так как по умолчанию свойство Direction (Направление) имеет
значение, соответствующее входному параметру. Для того чтобы связать параметр с
возвращаемым хранимой процедурой значением, используется значение
ParameterDirection: :ReturnValue. Для параметров, используемых в обоих
направлениях, берется значение ParameterDirection: : InputOutput (Входной и
выходной параметр).
Имена параметров можно использовать для доступа к каждому из параметров
коллекции параметров SqlCommand. Параметризованные команды могут работать как с
классом SqlDataReader, так и с классом DataSet (Набор данных). Позже, при
рассмотрении класса DataSet (Набор данных), мы расскажем, как определить
свойство параметра Source (Источник), которое указывает, какому именно столбцу
объекта DataSet (Набор данных) соответствует параметр.
HTML 5 — это грядущее обновление гипертекстового языка разметки, основного
способа создания контента для размещения его во всемирной паутине. Разработка
HTML остановилась в 1999 году, на версии HTML 4.01 и с тех пор web-содержимое
изменилось так, что текущие спецификации HTML перестали соответствовать
сегодняшним требованиям.
HTML 5 нацелен на то, чтобы увеличить функциональную совместимость HTML и
соответствовать растущим требованиям разнообразного и смешанного web-контента.
HTML 5 так же нацелен на устранение недостатков четвертой версии. В этой статье
мы взглянем на 5 новых интересных вещей в HTML 5.
Элемент управления ListView был представлен в .Net Framework 3.5 как замена
устаревшему GridView. Новый элемент имеет более расширенный функционал, чем его
предшественник, но в тоже время лишен некоторых внутренних механизмов, что
впрочем целиком следствие из расширенной универсальности ListView. Среди отличий
ListView и GridView можно назвать и гибкую настройку разметки, что позволяет
выводить данные не только в табличном виде, но и вообще в любом каком пожелает
программист. Благодаря шаблонам ItemTemplate, EditItemTemplate,
InsertItemTeplate можно настроить внешний вид при любом из состояний ListView:
редактировании или выборе элемента.
Компания Стимулсофт предоставляет для разработчиков мощный набор инструментов
для создания отчетов для Microsoft Visual Studio .Net 2005 и 2008; эти инструменты доступны
как для Windows Forms, так и для Web Forms. Это генератор отчетов Stimulsoft Reports.Net.
Генератор отчетов Stimulsoft Reports.Net имеет ряд особенностей: простая работа с дизайнером
отчетов, полная поддержка экспорта в PDF, Word, Excel и многие другие форматы. Crystal Report
и Microsoft Reporting Service – очень хорошие программные продукты для повседневной работы,
но, если Вам необходимо создать отчеты с поддержкой кросс-табов, drill down, Ajax, штрих-кодов
и возможностью подключения одновременно более одного источника данных, то Stimulsoft Reports.Net поможет Вам
сэкономить массу времени. Также, данный генератор отчетов позволяет пользователям создавать свои собственные
отчеты любой сложности. И все эти особенности делают Stimulsoft Reports.Net хорошим выбором в
сфере программных продуктов для Business Intelligence.