Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Установка и получение параметров объекта DataCommand




Если в приложении используется объект DataCommand, который работает непосредственно с элементами базы данных, то выполняемые SQL-запросы и хранимые процедуры обычно требуют параметров. Например, простая инструкция обновления записи — Update, требующая параметров, может иметь следующий вид:

UPDATE Employees

SET LastName=@LastName, FirstName=@FirstName, BirthDate=@BirthDate

WHERE (EmployeeID=@Emp_id)

Перед выполнением данного запроса, необходимо обязательно определить значения параметров (@LastName, @FirstName, @BirthDate и @Emp_id). Объект DataCommand поддерживают коллекцию Parameters, которая содержит набор объектов класса OleDbParameter или SqlParameter. Каждому параметру команды данных соответствует один объект в коллекции Parameters. Кроме того, если вызывается хранимая процедура, то возможно наличие дополнительного параметра, который будет принимать значение, возвращаемое процедурой.

Вы можете конфигурировать коллекцию Parameters Объекта DataCommand, используя окно свойств Properties или в программном коде. На рис. 3.2 показано окно редактора коллекции параметров, которое автоматически вызывается при нажатии кнопки в строке свойств Parametrs в окне Properties.

Примечание

Параметрам можно дать осмысленные имена, через которые можно обращаться к ним в программном коде. Хотя для ссылки на параметры можно использовать их индексные значения в коллекции Parameters, но программный код будет более ясным и понятным, если к параметрам обращаться с помощью имен.

 

Рис.51. Окно редактора коллекции параметров объекта DataCommand

 

Прежде, чем выполнять команду, необходимо установить значение для каждого параметра команды.

Для каждого параметра в коллекции Parameters задайте в свойстве Value то значение, которое нужно передать исполняемой команде. Следующий пример показывает, как установить значения параметров перед выполнением команды, которая вызывает хранимую процедуру. В данном примере предполагается, что вы уже сконфигурировали коллекцию Parameters (в коллекции содержится три параметра с менами au_id, аи_lname и au_fname). В данном примере такие свойства как CommandTex и CommandType задаются в программном коде, хотя они могут быть определены в окне Properties объекта DataCommand. Это сделано для большей наглядности и законченности приводимого в листинге программного кода.

Листинг

‘ Visual Basic

With OleDbCommand1

.CommandText="UpdateAuthor"

.CommandType=System.Data.CommandType.StoredProcedure

.Parameters("au_id").Value=listAuthorID.Text

.Parameters("au_lname").Value=txtAuthorLName.Text

.Parameters("au_fname").Value=txtAuthorFName.Text

End With

OleDbConnectionl.Open() OleDbCommandl.ExecuteNonQuery() OleDbConnectionl.Close()

// C#

OleDbCommandl.CommandText="UpdateAuthor";

OleDbCommandl.CommandType=System.Data.CommandType.StoredProcedure;

OleDbCommandl.Parameters["au_id"].-Value=listAuthorID.Text;

OleDbCommandl.Parameters["au_lname"].Value=txtAuthorLName.Text;

OleDbCommandl.Parameters["au_fname"].Value=txtAuthorFName.Text;

OleDbConnectionl.Open();

OleDbCommandl.ExecuteNonQuery();

OleDbConnectionl.Close ();




Поделиться с друзьями:


Дата добавления: 2014-11-20; Просмотров: 363; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.