Эндрю Троелсен - ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
- Название:ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
- Автор:
- Жанр:
- Издательство:Издательский дом Вильямс
- Год:2007
- Город:Москва • Санкт-Петербург • Киев
- ISBN:ISBN 5-8459-1124-9
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Эндрю Троелсен - ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание краткое содержание
В этой книге содержится описание базовых принципов функционирования платформы .NET, системы типов .NET и различных инструментальных средств разработки, используемых при создании приложений .NET. Представлены базовые возможности языка программирования C# 2005, включая новые синтаксические конструкции, появившиеся с выходом .NET 2.0, а также синтаксис и семантика языка CIL. В книге рассматривается формат сборок .NET, библиотеки базовых классов .NET. файловый ввод-вывод, возможности удаленного доступа, конструкция приложений Windows Forms, доступ к базам данных с помощью ADO.NET, создание Web-приложений ASP.NET и Web-служб XML. Книга содержит множество примеров программного кода, призванного помочь читателю в освоении предлагаемого материала. Программный код примеров можно загрузить с Web-сайта издательства.
ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Объект DataSet без объектов DataTable чем-то напоминает рабочую неделю без выходных. Поэтому следующей нашей задачей будет рассмотрение внутренней структуры DataTable, начиная с типа DataColumn.
Работа с DataColumn
Тип DataColumn представляет отдельный столбец в пределах DataTable. Вообще говоря, набор всех типов DataColumn в границах данного типа DataTable представляет собой структуру таблицы. Например, чтобы представить таблицу Inventory базы данных Cars, вы должны создать четыре типа DataColumn, по одному для каждого столбца этой таблицы (CarID, Make, Color и PetName). После создания объектов DataColumn они добавляются в коллекцию столбцов типа DataTable (с помощью свойства Columns).
Имея определенную подготовку в области теории реляционных баз данных, вы должны знать, что столбцу в таблице данных можно назначить набор ограничений (например, использовать столбец в качестве первичного ключа, задать значение по умолчанию, потребовать, чтобы информация в столбце была доступна только для чтения и т.д.). Также каждый столбец в таблице должен соответствовать заданному для него типу данных. Например, структура таблицы Inventory требует, чтобы значения столбца CarID были целыми числами, а значения Make, Color и PetName – наборами символов. Класс DataColumn имеет множество свойств, которые позволяют выполнить соответствующие настройки. Описания основных свойств этого типа приведены в табл. 22.11.
Таблица 22.11.Свойства DataColumn
Свойства | Описание |
---|---|
AllowDBNull | Индикатор того, что строка в этом столбце может содержать значение null. Значением по умолчанию является true |
AutoIncrement AutoInсrementSeed AutoIncrementStep | Используются для настройки автоприращения для данного столбца, когда нужно гарантировать уникальность значений в данном объекте DataColumn (например, для первичного ключа). По умолчанию в DataColumn автоприращение не выполняется |
Caption | Читает или устанавливает текст заголовка, который должен отображаться для данного столбца (например, текст, который увидит конечный пользователь, в DataGridView) |
Определяет | представление DataColumn при сохранении DataSet в виде XML-документа с помощью метода DataSet.WriteXml() |
ColumnName | Читает или устанавливает имя столбца в коллекции Columns (т.е. его представление в DataTable). Если не установить ColumnName явно, значением по умолчанию будет Column с номером столбца (т.е. Column1, Column2, Column3 и т.д.) |
DataType | Определяет тип данных, хранимых в столбце (логический, строковый, числовой с плавающей точкой и т.д.) |
DefaultValue | Читает или устанавливает значение, которое должно приписываться по умолчанию для данного столбца при вставке новых строк. Это значение используется тогда, когда не указано иное |
Expression | Читает или устанавливает выражение, используемое для фильтрации строк, вычисления значений столбца или создания агрегированных столбцов |
Ordinal | Возвращает числовую позицию столбца в коллекции Columns, поддерживаемой объектом DataTable |
ReadOnly | Индикатор запрета изменения содержимого столбца после добавления строки в таблицу. Значением по умолчанию является false |
Table | Возвращает объект DataTable, содержащий данный объект DataColumn |
Unique | Индикатор требования уникальности значений в данном столбце. Если столбцу назначается ограничение первичного ключа, свойству Unique должно быть назначено значение true |
Создание DataColumn
Чтобы продолжить работу с проектом SimpleDataSet (и привести пример использования DataColumn), предположим, что нам нужно представить столбцы таблицы Inventory. Учитывая то, что столбец CarID является первичным ключом таблицы, мы сделаем объект DataColumn доступным только для чтения, с ограничением уникальности и не допускающим ввода значений null (используя свойства ReadOnly, Unique и AllowDBNull). Обновите метод Main() так, чтобы построить четыре объекта DataColumn.
static void Main(string[] args) {
…
// Создание объектов DataColumn, отображающих 'реальные'
// столбцы таблицы Inventory из базы данных Cars.
DataColumn carIDColumn = new DataColumn("CarID", typeof(int));
carIDColumn.Caption = "Номер";
carIDColumn.ReadOnly = true;
carIDColumn.AllowDBNull = false;
carIDColumn.Unique = true;
DataColumn carMakeColumn = new DataColumn("Make", typeof(string));
DataColumn carColorColumn = new DataColumn("Color", typeof(string));
DataColumn carPetNameColumn = new DataColumn("PetName", typeof(string));
carPetNameColumn.Caption = "Название";
}
Разрешение автоприращения для полей
Одной из возможностей DataColumn, которая может Вам понадобиться, будет возможность автоприращения. Автоприращение используется для того, чтобы при добавлении новой строки столбцу автоматически присваивалось значение, вычисленное на основе заданного приращения. Это может оказаться полезным тогда, когда вы хотите, чтобы столбец не имел повторяющихся значений (например, как первичный ключ).
Соответствующим поведением можно управлять с помощью свойств AutoIncrement, AutoIncrementSeed и AutoIncrementStep. Значение AutoIncrementSeed используется для начального значения столбца, а значение AutoIncrementStер задает число, которое следует добавить к AutoIncrementSeed, когда выполняется приращение. Рассмотрите следующую модификацию конструкции объекта carIDColumn типа DataColumn.
static void Main(sting[] args) {
…
DataColumn carIDColumn = new DataColumn("CarID", typeof(int));
carIDColumn.ReadOnly = true;
CarIDColumn.Caption = "Номер";
CarIDColumn.AllowDBNull = false;
carIDColumn.Unique = true;
carIDColumn .AutoIncrement= true;
carIDColumn .AutoIncrementSeed= 0;
catIDColumn .AutoIncrementStep =1;
}
Здесь объект объект carIDColumn сконфигурирован так, чтобы при добавлении строк в соответствующую таблицу значение данного столбца увеличивалось на 1. Начальным значением является 0, поэтому для столбца будут выбираться числа 0, 1, 2. 3 и т.д.
Добавление DataColumn в DataTable
Тип DataColumn обычно не существует автономно, а добавляется в соответствующий объект DataTable.Для примера создайте новый тип DataTable (подробности будут предложены чуть позже) и вставьте объекты DataColumn в коллекцию) столбцов, используя свойство Columns.
static void Main(string[] args) {
…
// Добавление DataColumn в DataTable.
DataTable inventoryTable = new DataTable("Inventory");
inventoryTable.Columns.AddRange(new DataColumn[] {
carIDColumn; carMakeColumn, carColorColumn, carPetNameColumn
});
}
Работа с DataRow
Вы видели, что коллекция объектов DataColumn представляет структуру DataTable. Коллекция типов DataRow представляет фактические данные таблицы. Поэтому если у вас в таблице Inventory базы данных Cars содержится 20 записей, вы можете представить эти записи с помощью 20 типов DataRow. Используя члены класса DataRow, можно вставлять, удалять оценивать и перемещать значения таблицы. Описания некоторых (но не всех) членов типа DataRow предлагаются в табл. 22.12.
Читать дальшеИнтервал:
Закладка: