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

С# - Ватсон К.

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


// Извлечение из Файла DacabaseAttributes.cs /// <summary>

III Этот атрибут используется для всех свойств, которые /// представляет столбцы базы данных III </summary>

[AttributeUsage (AttributeTargets.Property , Inherited=true , AllowMultiple«?alse)] -

public class Databases lumnAttribute : Attribute {

III <вшлгаагу>

III Создание атрибута столбца базы данных III </sumraary>

HI <param name =•• column "^Название столбца-:/param>

III -sparam name*"dataiype'>Тип данных, хранящихся в данном стодбц Урагал» public DatabaseColumnAttribute (string column , ColumnDotoain dataType)

(

ColumnHame = column;

DataType = dataTy *;

Order = GenerateOrderNumber ,()

)

III <виштаху>

III Возвращает название столбца III summary*

public readonly string ColumnName;

¦ /// summary*

/// Возвращает домен столбца /// </8uramary>

public readonly ColuauiDomain DataType;

/// <summary>

III Считывает/записывает значение лампа Nullable. Возможно,

III лучше использовать свойство III </suramary>

public bool Nullable * false;

III <summaxy> '
Атрибуты_________________________________________________________________________________________645

III Считывает/записывает значение порядкового номера Order. 8 этом

III случае использование свойства также может оказаться боле» приемлемым.

Ill </8ummary> public int Order;

III <вштоагу»

III Считывает/записывает значение Size, представялщее размер столбца III (полезно для столбцов с текстом) .

/// </smmary> public int Si sir;

III <sumniary> ¦

III Генерирует возрастаюдуи последовательность порядковых номеров III для столбцов III </eumntary>

III creturnsx/returna»

public static int GenerateOrderNuitiber ()

{

return nextOrder++>

)

III <suimnary>

III Частное значение, используемое при генерировании порядковых номеров III </summary»

private static int nextOrder ¦ 100;

III <summary>

III Пронумеро иный список типог данных в столб ix III </summary» public enura ColumnDomain (

III <Bummary>

III 32 разряда III </summary>

Integer ,

III <summary>

III 64 разряда III </summary>

Long,

III <summary>

III Столбец, содержащий строку III </summary»

String,,

III oumraary»

III Столбец, содержащий дату и время -

III </summary»

DateTime

)

Данный класс также помечен флажком AllowMuitipie=faise, поскольку в данном случае также имеется соответствие один к одному между свойством DataHow и столбцом, к которому оно привязано.

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

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

Глава 22

У атрибута также есть три других свойства, которые описание которых приводится ниже:

? Nullable — По умолчанию этому свойству присваивается значение false; данное свойство используется при создании столбца для описания того, может ли в качестве соответствующего значения в базе данных храниться значение null.

? Order — Определяет порядковый номер столбца в данной таблице.

После того как таблица будет создана, столбцы будут выводиться

в возрастающем порядке. По умолчанию генерируется увеличенное на единицу значение; это происходит внутри конструктора.

Можно переопределить это значение так, как это необходимо.

? size — Определяет максимально допустимое число символов в строке для строкового тнпа.

Для определения названия столбца Name можно воспользоваться таким кодом:

(DatabaeeColumnt'NAME* ,ColumnDomain.String,0rder=10,Size=64) ] public string Name ( . . ' ¦ . get { return (string) this ['НШЕ'Ь > set ( Chiet'MMB'] ¦ value; >

)

В этом примере определяется поле с именем name, и оно будет создано как varchar (G4), поскольку домен данного столбца определен как строка, а параметру size присвоено соответствующее значение. Порядковый номер в примере определяется равным 10 — почему именно 10, мы поймем позже. В столбце также не могут использоваться значения null, поскольку свойству Nullable по умолчанию присваивается значение false {т. е. данный столбец будет создан как non null). Класс DacaKow представляет собой индексатор, которому в качестве параметра передается значение поля (нли порядковое числительное). В результате возвращается некоторый объект, который приводится к строковому типу, перед тем как быть переданным получателю, приведенному выше.

Создание строк баз данных

Целью этого примера является построение семейства строго типизированных объектов DataRow. В данном примере мы создадим два класса, Author и Book, которые являются производными от одного базового класса, поскольку они оба обладают доступом к общим полям.
Предыдущая << 1 .. 296 297 298 299 300 301 < 302 > 303 304 305 306 307 308 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

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

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

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

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