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

 

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

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

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

Связывание элемента управления DataGrid с объектом DataReader
Как уже говорилось, данные на Web-странице доступны только для чтения. Объект DataSet предоставляет значительно более широкую функциональность (кэширование I юном с и; п'г простое перемещение между таблицами и ~,гД. которая может потребоваться вам при выполнении запроса и выводе его результатов на Web-странице. Для повышения производительность элементы управления ASP.NET также
поддерживают связывание с объектами DataReader.
ГЛАВА 14 Создание эффективных Web-приложений
537
Следующий фрагмент кода выполняет все тот же запрос, но получает его результаты при помощи объекта t^tcl>!>l.?/-/iakt'Ltt:k-> и связывает с этим объектом элемент управления DataGrid Web-формы.
Visual Basic NET
Dim strConn, strSQt As String
strConn = "Provider=S0L0LEDB;Data Source=(local)\NetSDK;" &
"Initial Catalog=Northwind;Trusted_Connection=Yes;" strSQD = "SELECT CustomerlD, CompanyName, ContactNaine, Phone 11 &_
"FROM Customers" Dim cn As New OleDbConnection(strConn) cn.OpenO
Di^ cmd As New 01e0bCoirnnand(strSOl.. cn)
Dim rdr As OleDbDataReader = cmd.ExecuteReader()
gridCustomers.DataSource = rdr
gridCustoners. DataBindO
irdr.Close{)
cn.CloseC)
Visual C# .NET
string strConn, strSQL;
strConn = "Provider=SQLOtEDB;Data Source=(local)\\NetSDK;" + "Initial Catalog=Northwind;Trusted_Connection=Yes;";
strSQD = "SEDECT CustomerlD, CompanyName, ContactName, Phone " +
"FROM Customers"; OleDbConnection cn = new OleDbConnection(strConn); cn.Open()
OleDbCommand cmd = QleDbCO«ffliand(strS0.L, strConn);
OleDbDataReader rdr = cmd. ExecuteReaderQ;
gridCustomers.DataSource = rdr;
gridCustomers. DataBindO;
irdr.CloseC);
cn.CloseC);
Кэширование данных между обращениями к БД
Итак, вы умеете выводить данные на^-сЬ-странице. Вы знаете, как выполнить запрос и преобразовать его результаты в ИТМХ-код при помощи элементов управления, связанных с данными. Что, если вы не хотите выполнять одинаковые запросы при каждом обращении к серверу? Например, можно кэшировать результаты запроса, интенсивно использующего ресурсы системы. Или же сохранять содержимое корзины клиента.
ASP.NET предоставляет множество функций кэширования, позволяющих управлять тем, как хранятся данные приложения или отдельного сеанса. Сами по себе эти функции очень просты. Тем не менее универсальных -правильных > и «непра-способов кэширования данных нет. В одном приложении применение конкретной функции кэширования повысит а в другом -
наоборот, снизит ее.
538 Часть IV Создание эффективных приложений с использованием ADO.NET
Чтобы понять, какие функции кэширования требуются вашему приложению и нужны ли они вообще, вам необходимо четко представлять себе архитектуру создаваемой программы, а также принципы работы и преимущества и недостатки каждой из этих функций. Следующий раздел не содержит необоснованных утверждений типа «Кэширование данных в объекте Application - паршивая идея». Прочитав его, вы уясните основы функций кэширования ASP.NET.
Способ без хранения сведений о состоянии
Нет закона программирования, !.:>¦;;• . что необходимо ^ззе^рез;ть данные. ASHNET-код вашего Web-приложения может : , ¦ ыо исключать хранение сведений о состоянии.
При этом выполнение запросов и преобразование их результатов в HTML осуществляется средствами связанных элементов управления. Если у вас есть приложение размещения заказов, в котором пользователь хранит список товаров в корзине, допустимо записывать содержимое корзины текущего пользователя в БД, выполняя поиск связанных с этим пользователем записей БД по идентификатору сеанса.
Преимущества
Достоинства данного способа таковы: если исключить в ASP.NET-кодс кэширование данных, на каждого клиента приложению потребуется минимальный объем
ламяти. С точки зрения требований к памяти этот обеспечивает максимальную
масштабируемость.
Недостатки
Тем не менее это слишком упрощенный взгляд на создание масштабируемых приложений. Скажем, ваше приложение — интерактивный каталог, на каждой странице которого отображается список категорий товаров. Стоит ли получать этот список из БД каждый раз, когда пользователь обращается к странице каталога?
Кэширование данных на стороне клиента
Если вам требуется кэшировать и вы не хотите хранить сведения о состо-
можно воспользоваться одним из кэширования данных на сто-
роне клиента.
Файлы cookie
Многие Web-узлы хранят пользовательские данные на стороне клиента при помощи файлов cookie. Объекты Request и Response ASP.NET предоставляют набор cookies, позволяющий записывать и получать информацию между обращениями к БД. Так, следующий код с помощью файла cookie отслеживает время и дату последнего посещения узла пользователем:
Visual Basic
If Request.Cookies("LastVisif) Is Nothing Then
IblLastVisit.Text = "This is your first visit! Welcome!" Response.AppendCookieCNew HttpCookle("LastVislt", Now.ToString))
ГЛАВА 14 Создание эффективных Web-приложений 539
Else
IblLastVisit.Text = "Welcome back. Your last visit was: Request,Cookies("LastVisit").Value Response.Cookias("LastVisit").Value = Now.ToString
Предыдущая << 1 .. 225 226 227 228 229 230 < 231 > 232 233 234 235 236 237 .. 260 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100