Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Вебмастеру -> Сеппа Д. -> "Microsoft ADO.NET" -> 229

Microsoft ADO.NET - Сеппа Д.

Сеппа Д. Microsoft ADO.NET — М.: Русская Редакция, 2003. — 640 c.
ISBN 5-7502-0223-2
Скачать (прямая ссылка): mcrsftado2003.pdf
Предыдущая << 1 .. 223 224 225 226 227 228 < 229 > 230 231 232 233 234 235 .. 260 >> Следующая

Итак, не рассказав хотя бы вкратце о работе с БД Access в ASP.NET-приложени-ях, я оказал бы вам медвежью услугу. На поздних этапах разработки . N П специалисты Microsoft изменили сетевые разрешения, назначенные учетной записи ASP.NET. Эти изменения напрямую затрагивают разработчиков, использующих в своихASP.NET-приложениях БДAccess.
Когда вы открываете БД Access, ядро БД Jet отслеживает различные блокировки (как чтения, так и записи), пользователями на ряды и страницы, при помощи сопоставленного с БД файла блокировок. Следезагеяьг-'о, у пользователя, обращающегося к .оД. должны быть разрешения «чтение» и «запись» на доступ к папке, в которой эта БД находится. Предположим, система генерирует исключения типа;
The Microsoft database engine cannot open the file 'C:\Path\Ta\MyDatabase.mdb'. It is already opened exclusively by another user, or you need permission to view its data.
или
Operation must use an updateable query.
В этом случае проблема скорее всего в том, что у учетной записи ASP.NET нет права доступа на запись к файлу блокировок. Убедитесь, что учетная запись ASP.NET
обладает необходимыми разрешениями на доступ к папке, в которой находится
БД Access.
Вывод данных на Web-странице
Конечно, подключение к БД — это только первый этап. После подключения обычно выполняют запрос, получают его результаты и выводят полученные данные на Web-странице.
Как и в случае с Windows Forms, написать ASP.NET-код для задания свойств элементов управления можно вручную:
Visual Basic .NET
TextBoxl.Text = My[;ataSet.Tabl6s('"HyTatufc'').Rowb(!5)(--HyColunin-)
Visual C# .NET
TextBoxl.Text = (string) MyDataSet.Tables[',«yTabie',].Rcws[0:]["MyColuffln"];
ГЛАВА 14 Создание эффективных Web-приложений 533
Чтобы упростить данный процесс, воспользуйтесь функциями связывания с данными, которые предоставляют элементы 'шранлеипя ASP.NET. Скажем, вы добавили в Web-приложение код, выполняющий запрос и помещающий его результаты в объект lnua-ivL Теперь вам нужно вывести содержимое . на Web-странице в виде HTML-таблицы. Можно генерировать HTML-код таблицы, i [аписав для этого большой объем кода на ASP.NET, можно воспользоваться XML и XSLT, но вы
избавите себя от массы проблем, если задействуете средства связывания с данными,
предоставляемые ASP.NET.
Связанные элементы управления ASP.NET преобразуютданные в HTML-код для Web-страницы. Связывание с данными в ASP.NET — это улица с односторонним движением. Если связать текстовое поле с полем объекта Dahitabie, отобразить страницу и изменить содержимое текстового поля, это никак не отобразится на оригинальном содержимом поля в объекте DataTable. У элемента управления Паигнк! есть возможности, позволяющие реализовывать в Web-приложениях функции обновления, однако большинство связанных элементов управления ASP.NET применяются для вывода данных, доступных только для чтения.
Как и при связывании с данными в Windows, с источниками данных разрешается связывать однозначные, например текстовые и многозначные элементы управления, например сетки. Для связывания многозначных элементов управления применяются стандартные свойства и Связать с данными одновременно однозначные и многозначные элементы управления удается при помощи статичного объекта DataBinder Web-страницы,
Использование метода
Начнем изучение возможностей связывания с данными, предоставляемых ASP.NET, с того, что свяжем с данными элемент управления lex::Box. воспользовавшись
методом Eval объекта DataBinder. DataBinder получает данные из объектов при
помощи механизма Reflection. Так, следующий код возвращает значение поля Company-Name первой записи объекта DataTable:
DataBinder. Eval(DataTable, "Rows[0],[CompanyName]")
Этот метод Eval возвращает данные с использованием универсально! о типа Object, который затем преобразуется в любой нужный тип данных.
Показанный ранее метод Eval перегружен. Есть еще один метод прини-
мающий строку формата. Скажем, вы получаете информацию о конкретном товаре и вам ! гуж и о вывести Б текстовом поле цену этого товара. Следующий вызов метода Eval форматирует содержимое поля как значение с типом дан-
ных currency:
DataBinder.Eval(DataTable, "Rows[0].[UnitPrice]", "{0:c}")
Этот метод Eval возвращает данные в виде строки с использованием указанного вами формата. Подробнее о выражениях для форматирования строк — в документации метода
Объект DataBinder не рассчитан исключительно на объекты для доступа к данным и позволяет также извлекать данные из свойств других объектов. следующий код возвращает значение свойства Visible элемента управления TextBox:
534
Часть IV Создание эффективных приложений с использованием ADO.NET
DataBinder. F.val(Textaox1. "Visible")
Данный код примерно эквивалентен прямому обращению к свойству Visible элемента управления TextBox за исключением з ни что в коде на основе DefaBhutki-используется позднее связывание. Если вы случайно сделаете опечатку и напишете такой код:
'DataBinder. Eval(TextBox1, "Visibile")
то узнаете о своей ошибке только в период выполнения, а не в период компиляции,
Предыдущая << 1 .. 223 224 225 226 227 228 < 229 > 230 231 232 233 234 235 .. 260 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100