Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Ватсон К. -> "С#" -> 306

С# - Ватсон К.

Ватсон К. С# — Лори, 2005 . — 879 c.
ISBN 1-861004-98-2
Скачать (прямая ссылка): vatsonc2005.pdf
Предыдущая << 1 .. 300 301 302 303 304 305 < 306 > 307 308 309 310 311 312 .. 404 >> Следующая


> ¦

)

II Включение столбцов в возрастающем порядке foreach (DictionaryEntry е in columns)

this.Columns.Add (e.Value ав DataColumn) ;

)

III <3ummary> ¦

III Вызывается из System.Data ttt </summary>

III <retums>THHbi строк, которые содержатся в данной таблицей/returns>
654 Глава 22

protected override System.Type GetHowType О

{

return DLjrowType;

)

III <summary>

/// Создание нового DataRow III </eumnary>

III <param neme«"buil< г" Передается из System.Data</param>

III <returns>Ee30naCHyD с точки зрения использования типов III строку DataRow</returns»

protected override DataRow NewBowFromBuildar (DataRowBuilder builder) .

(

Ц Создание нового экземпляр* класса типа навей строки return ( DataRow ) Activator,Createlnstance ( GetRowTypeO ,

nei abject[1J ( builder }};

}

/// <Bumraary>

III Сохранение типа строки /// </summary>

private System. Type ra^rowType;

Функция constructcoiumnso, вызываемая из конструктора, создает массив DataCoiumna для DataTable — в этом случае колонки извлекаются также с помощью отражения. Остальные методы — GetRowTypeO и NerRowFromBuiiderO — переопределяют соответствующие методы базового класса DataTable.

Создав такой производный класс MyDataTable, вы получаете простую возможность использовать его в вашей программе, Приведенный ниже пример демонстрирует процедуру добавления двух записей в таблицу Author, а затем вывод этих строк в виде XML-файла:

DataSet ds - new DataSet О ;

My DataTable t = new MyDataTable (typeof (AuthorRow)); ds.Tables.Add (t);

* thorHow author * (AuthorRow)t.NewRow () ;

author.AuthorID - 1; author.Name ¦ 'He'}

author.HireDate = new System.DateTime ( 2000,12,9,3,30,0 ) j

t. Rows. Add (author) ,-

author = (AuthorRow) t.NewRow ()j author.AuthorlD « 2j author.Nome • 'Paul*;

author.HireDate. c new System.DateTime (1001,06,06,23,56,33);

t.Rows.Add (author)i

t.DataSet.Writexml (0".Nauthors.xml*);

Если запустить такую программу, то будет получен следующий выходной поток:

<?хш1 version=*1.0" standalone="yes"?>

<NewDataSct>

<Tablel>

<At7THOR_ID>l</AUTHOR_ID>

<NAME>Me</NAME>

<HIRE_DATE>2 0 0 0-12-0 9T0 3:30:00.0000000-00:00</HIRE_DATE>

</Tablel>
<Tablel>

<AUTH0R^ID>2</AUTH0R_ID>

<NAME>Paul</NAME>

<HIRS_J>ATE>2001-0fi-06T23 :56:33 . 0000000+01: 00</HIRE_DATE>

</Tablel>

</NewDataSet>

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

Прн исчерпывающей реализации мы получили бы возможность использовать атрибуты для описания:

? Столбцов с основными ключами

? Ограничений — внешний ключ и проверка

? Версий — номер версии для каждого атрибута столбца и каждого атрибута таблицы позволил бы упростить создание сценариев обновления; фактически, появилась бы возможность полностью проводить обновление посредством использования атрибутов

? Значений столбцов, использующихся по умолчанию

В двиной главе описывается, что из себя представляют атрибуты, и обсуждаются некоторые из атрибутов, описанных в системе. На самоде деле в системе существует намного большее количество атрибутов, и лучшим способом познакомиться с ними является изучение MSDN-документацнн.

Мы обсудили атрибуты, которые могут храниться внутри модуля с целью обеспечения конечного пользователя детальной информацией (она выводится с помощью диалога свойств файлов), а также воспользовались iidasm для знакомства с тем, каким образом атрибуты хранятся внутри модуля. Мы затронули также предмет “отражение”, чтобы продемонстрировать, каким образом можно считывать атрибуты программным путем, наконец, мы описали некоторые встроенные атрибуты, та-

*

кие как Conditional, Obsolete И Serializable.

После этого мы перешли к рассмотрению вопроса о том, как можно создавать нестандартные атрибуты, и обсудили атрибут AttributeUsase, Воспользовавшись некоторыми из обсуждавшихся ранее приемов, мы создали атрибут BusFix. В завершение мы рассмотрели большой пример, посвященный генерированию информации о схеме базы данных из классов.
Основы web-программирования

На протяжении трех последующих глав мы будем изучать программирование для World Wide Web (Всемирная паутина). Это очень большая тема, н в настоящей главе вы получите хорошие знания как о таящихся в ней трудностях, так и об удивительных открывающихся возможностях. В следующей главе мы познакомимся с использованием ASP.NET, однако для начала нам придется потратить некоторое время для рассмотрения того, что было раньше и каким образом возникли Интернет вообще и Всемирная паутина в частности,
Предыдущая << 1 .. 300 301 302 303 304 305 < 306 > 307 308 309 310 311 312 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.