Симон Робинсон - C# для профессионалов. Том II

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.
Жалоба
Напишите нам, и мы в срочном порядке примем меры.
Описание книги "C# для профессионалов. Том II"
Описание и краткое содержание "C# для профессионалов. Том II" читать бесплатно онлайн.
Платформа .NET предлагает новую среду, в которой можно разрабатывать практически любое приложение, действующее под управлением Windows, а язык C# — новый язык программирования, созданный специально для работы с .NET.
В этой книге представлены все основные концепции языка C# и платформы .NET. Полностью описывается синтаксис C#, приводятся примеры построения различных типов приложений с использованием C# — создание приложений и служб Windows, приложений и служб WWW при помощи ASP.NET, а также элементов управления Windows и WWW Рассматриваются общие библиотеки классов .NET, в частности, доступ к данным с помощью ADO.NET и доступ к службе Active Directory с применением классов DirectoryServices.
Эта книга предназначена для опытных разработчиков, возможно, имеющих опыт программирования на VB, C++ или Java, но не использовавших ранее в своей работе язык C# и платформу .NET. Программистам, применяющим современные технологии, книга даст полное представление о том, как писать программы на C# для платформы .NET.
• Все особенности языка C#
• C# и объектно-ориентированное программирование
• Приложения и службы Windows
• Создание web-страниц и web-служб с помощью ASP NET
• Сборки .NET
• Доступ к данным при помощи ADO NET
• Создание распределённых приложений с помощью NET Remoting
• Интеграция с COM, COM+ и службой Active Directory
Тогда мы должны отключить все элементы управления проверкой по умолчанию, затем включить заново эти элементы управления в обработчике нажатия кнопки и заставить их проверять, прежде чем мы проверим свойство формы IsValid.
Для выполнения всего этого требуется следующее изменение кода. В Page_Load() мы отключаем все элементы управления проверкой. Мы можем использовать для этого коллекцию формы Validators, она содержит все элемента проверки на странице, поэтому мы можем их все перебрать.
private void Page_Load(object sender, System.EventArgs e)
validationSummary.Enabled = false;
foreach (System.Web.UI.WebControls.WebControl validator in this.Validators) {
validator.Enabled = false;
}
…
}
В методе submitButton_Click() мы сразу включаем все элементы управления проверкой, за исключением итогового, что заставляет их проверять свои соответствующие элементы управления, вызывая метод формы isValid(), и затем проверять, как и раньше, свойство IsValid. Мы добавляем также в эту проверку предложение else, которое снова включает итоговую проверку, если оказывается, что IsValid задан как false. Это предоставляет пользователю обратную связь тогда и только тогда, когда элементы управления имеют недопустимые данные и нажата кнопка отправки.
protected void submitButton_Click(object sender, System.EventArgs e) {
foreach (System.Web.UI.WebControls.WebControl validator in this.Validators) {
validator.Enabled = true;
}
this.Validated);
if (this.IsValid) {
…
} else {
validationSummary.Enabled = true;
}
}
В результате этого эффективно отключается проверка на клиентской стороне, что стоит затраченных усилий, так как предоставляет дополнительное удобство использования.
ADO.NET и связывание данных
Созданное в предыдущем разделе приложение формы Web является полностью функциональным, но содержит только статические данные. Кроме того, событие процесса заказа не содержит устойчивых данных события. Чтобы решить обе эти проблемы, можно воспользоваться ADO.NET и получить доступ к данным, хранящимся в базе данных, так чтобы можно было сохранять и извлекать данные события вместе со списками помещений и служителей.
Соединение данных делает процесс извлечения данных еще легче. Элементы управления, такие как поля списков (и некоторые из более специальных элементов управления) готовы к использованию этой техники. Они могут быть связаны с любым объектом, который предоставляет интерфейс IEnumerable, ICollection или IListSource, что включает объекты DataTable.
В этом разделе мы начнем с модернизации нашего приложения события заказа помещения, а затем пойдем дальше и рассмотрим некоторые другие вещи, которые можно делать со связыванием данных, используя другие элементы управления Web.
Модернизация приложения заказа помещения
Создадим новое приложение Web с именем PCSWebApp3 и скопируем код из созданного ранее приложения PCSWebApp2. Прежде чем начать новый код, давайте рассмотрим базу данных, к которой мы будем обращаться.
База данных
Для этого примера используем базу данных Microsoft Access с именем PCSWebApp3.mdb, которую можно найти вместе с загружаемым кодом для этой книги. Для учета масштаба предприятия имеет смысл использовать базу данных SQL Server, но хотя используемая техника практически одинакова, но Access все же облегчает процесс тестирования. В ходе изложения будут показаны необходимые различия в коде, когда они возникнут. Представленная база данных содержит три таблицы:
□ Attendees содержит список возможных почетных гостей событий.
□ Rooms содержит список возможных помещений для событий.
□ Events содержит список заказанных событий.
AttendeesТаблица Attendees содержит следующие столбцы:
Столбец Тип Примечания ID AutoNumber, первичный ключ Идентификационный номер почетного гостя Name Text, необходимое значение, 50 символов Имя почетного гостя Email Text, необязательное значение, 50 символов Адрес e-mail почетного гостяБаза данных позволяет хранить сведения о 20 почетных гостях, каждый из которых может иметь адрес e-mail. Другое приложение может автоматически посылать письмо почетным гостям после выполнения заказа. Читателям предлагается реализовать такое приложение в качестве упражнения.
RoomsТаблица Rooms содержит следующие столбцы:
Столбец Тип Примечания ID AutoNumber, первичный ключ Идентификационный номер помещения Room Text, требуемое значение, 50 символов Название помещения EventsТаблица Events содержит следующие столбцы:
Столбец Тип Примечания ID AutoNumber, первичный ключ Идентификационный номер события Name Text, требуемое значение, 255 символов Название события Room Number, требуемое значение Идентификатор помещения для события AttendeeList Memo, требуемое значение Список имен почетных гостей EventData Date/Time, требуемое значение Дата событияНесколько событий представлены в загружаемой базе данных.
Соединение с базой данных
Два элемента управления, которые мы хотели бы связать с данными, — attendeeList и roomList. Чтобы сделать это, мы должны задать свойства DataSource этих элементов управления как таблицы, содержащие данные. Код должен загрузить данные в эти таблицы и выполнить соединение. Оба эти элемента управления имеют также свойства DataTextField и DataValueField, которые определяют, какие столбцы использовать для вывода элементов списка и задания свойств value, соответственно. В обоих случаях можно задать эти свойства во время проектирования как Name и ID, что будет использоваться, как только задается свойство DataSource для заполнения элементами списка элемента управления.
Теперь мы можем сделать это в построителе форм Web. Удалите существующие записи из кода ASP.NET для этих элементов управления. Теперь что объявления будут выглядеть следующим образом:
...
<asp:dropdownlist id="roomList" runat="server" width="160px" datatextfield="Room" datavaluefield="ID" / >
...
<asp:listbox id="attendeeList" runat="server" width="160px" selectionmode="Multiple" rows="6" datatextfield="Name" datavaluefield=" " >
Следующая задача состоит в создании соединения с базой данных. Существует несколько способов это сделать. Как мы видели в главе ADO.NET ранее, обычно для создания нового соединения используется окно Server Explorer. Так как мы работаем с Access, то тип провайдера для этого соединения будет Microsoft Jet 4.0 OLE DB Provider. Когда это будет задано в окне сервера, мы сможем перетащить соединение на форму Web, что добавит объект Data.OleDb.OleDbConnection к форме с именем oleDbConnection1:
public class WebForm1: System.Web.UI.Page {
...
protected System.Data.OleDb.OleDbConnection oleDbConnection1;
Для соединения SQL Server будет добавлен объект SqlClient.SqlConnection.
В метод InitializeComponent() также добавится код для задания свойства ConnectionString формы oleDbConnection1, таким образом все будет готово для использования в коде.
Мы хотим выполнить соединение данных в обработчике событий Page_Load(), так что элементы управления будут полностью заполнены, когда мы захотим использовать их в других частях кода. Приступаем к считыванию данных из базы данных, независимо от того, выполняется ли в данный момент операция обратной отправки (даже если элементы управления списком будут сохранять свое содержимое с помощью viewstate), чтобы гарантировать, что мы имеем доступ ко всем данным, которые могут понадобиться, хотя нам и не нужно выполнять само соединение данных при обратной отправке. Это может показаться слегка расточительным, но читатель при желании может в качестве упражнения добавить дополнительную логику к коду для оптимизации такого поведения. Здесь мы сосредоточимся на том, как заставить все работать, не входя в практические детали.
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!
Похожие книги на "C# для профессионалов. Том II"
Книги похожие на "C# для профессионалов. Том II" читать онлайн или скачать бесплатно полные версии.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Отзывы о "Симон Робинсон - C# для профессионалов. Том II"
Отзывы читателей о книге "C# для профессионалов. Том II", комментарии и мнения людей о произведении.