- •1. Язык программирования c# 3
- •2. Базовые элементы .Net Framework 67
- •3. ТЕхнология .Net Remoting 144
- •Введение
- •1. Язык программирования c#
- •1.1. Платформа .Net – обзор архитектуры
- •1.2. Язык c# - общие концепции синтаксиса
- •1.3. Система типов языка c#
- •1.4. Преобразования типов
- •1.5. Идентификаторы, ключевые слова и литералы
- •1.6. Объявление переменных, полей и констант
- •1.7. Выражения и операции
- •1.8. Операторы языка c#
- •1.9. Объявление и вызов методов
- •1.10. Массивы в c#
- •1.11. Работа с символами и строками в c#
- •1.12. Синтаксис объявления класса, Поля и методы класса
- •1.13. Свойства и индексаторы
- •1.14. Конструкторы класса и Жизненный цикл объекта
- •1.15. Наследование классов
- •1.16. Перегрузка операЦий
- •1.17. Делегаты
- •1.18. События
- •1.19. Интерфейсы
- •1.20. Структуры и перечисления
- •1.21. Пространства имен
- •1.22. Генерация и обработка исключительных ситуаций
- •1.23. Нововведения в языке c# 2.0
- •1.24. Обобщенные типы (generics)
- •2. Базовые элементы .Net Framework
- •2.1. Метаданные и механизм отражения
- •2.2. Пользовательские и встроенные атрибуты
- •2.3. Пространство имен system.Collections
- •2.4. Работа с файлами и директориями
- •2.5. Использование потоков данных
- •2.6. Сериализация
- •2.7. Сериализация объектов в нестандартном формате
- •2.8. Введение в xml
- •2.9. Работа с xml-документами в .Net framework
- •2.10. МНогопоточное программирование
- •2.11. Синхронизация потоков
- •2.12. Асинхронный вызов методов
- •2.13. Состав и взаимодействие сборок
- •2.14. Конфигурирование сборок
- •3. ТЕхнология .Net Remoting
- •3.1. Домены приложений
- •3.2. Архитектура .Net Remoting
- •3.3. Активация удаленных объектов и их время жизни
- •3.4. Программная настройка Remoting
- •3.5. Удаленные Объекты с клиентской активацией
- •3.6. Настройка Remoting при помощи конфигурационных файлов
- •3.7. Хостинг распределенных приложений
- •3.8. Объекты-сообщения
- •3.9. Пользовательские канальные приемники
- •4.1. Архитектура ado.Net
- •4.2. Учебная база cd Rent
- •4.3. Соединение с базой данных
- •4.4. Выполнение команд и запросов к базе данных
- •4.5. Чтение данных и объект DataReader
- •4.6. Параметризированные запросы
- •4.7. Рассоединенный набор данных
- •4.8. Заполнение Рассоединенного набора данных
- •4.9. Объект класса DataColumn – колонка таблицы
- •4.10. Объекты класса DataRow – строки таблицы
- •4.11. Работа с объектом класса DataTable
- •4.12. DataSet и схема рассоединенного набора данных
- •4.13. Типизированные DataSet
- •4.14. Поиск и фильтрация данных в DataSet
- •4.15. Класс DataView
- •4.16. СиНхронизация набора данных и базы
- •5.1. Архитектура и общие концепции asp.Net
- •5.2. Пример aspx-страницы. Структура страницы
- •5.3. Директивы страницы
- •5.4. Класс System.Web.Ui.Page. События страницы
- •5.5. Серверные элементы управления
- •5.6. Элементы управления Web Controls
- •5.7. Проверочные элементы управления
- •5.8. Списковые элементы управления
- •5.9. Связывание данных
- •5.11. Управление состояниями в web-приложениях
- •5.12. Кэширование
- •5.13. Безопасность в web-приложениях
- •5.14. Создание пользовательских элементов управления
- •Литература
4.9. Объект класса DataColumn – колонка таблицы
Структура любой таблицы описывается свойствами ее столбцов. Столбец таблицы представлен объектом класса DataColumn. Данный класс содержит следующий набор свойств, перечисленный в таблице 26.
Таблица 26
Свойства класса DataColumn
Имя свойства |
Тип |
Описание |
AllowDBNull |
boolean |
Определяет, допустимы ли в столбце пустые значения |
AutoIncrement |
boolean |
Генерируется ли для столбца новое значение автоинкремента |
AutoIncrementSeed |
int |
Начальное значение автоинкремента |
AutoIncrementStep |
int |
Шаг автоинкремента |
Caption |
string |
Заголовок столбца, отображаемый в элементах управления |
ColumnMapping |
MappingType |
Определяет, как будет записано содержимое столбца в XML-документ |
ColumnName |
string |
Имя столбца в таблице |
DataType |
Type |
Тип данных столбца |
DefaultValue |
object |
Значение по умолчанию в столбце |
Expression |
string |
Выражение для вычисляемых столбцов |
ExtendedProperties |
PropertyCollection |
Набор динамических свойств столбца и их значений |
MaxLength |
int |
Максимально допустимая длина строки данных для столбца |
Namespace |
string |
Имя пространства имен XML, используемого при загрузке и чтении столбца из XML-файла |
Ordinal |
int |
Порядковый номер столбца в таблице |
Prefix |
string |
Префикс пространства имен XML; используется при загрузке и чтении столбца из XML-файла |
ReadOnly |
boolean |
Указывает, что содержимое столбца доступно только для чтения |
Table |
DataTable |
Таблица, в состав которой входит столбец |
Unique |
Boolean |
Должно ли быть значение в столбце уникальным в пределах таблицы |
«Ручное» создание объектов-столбцов используется при самостоятельном формировании схемы DataSet. Минимально допустимая настройка столбца заключается в указании его имени и типа данных1. После этого столбец может быть добавлен в таблицу (при этом заполнятся свойства Ordinal и Table).
DataColumn dc = new DataColumn();
dc.ColumnName = "New Column";
dc.DataType = typeof(int);
DataTable dt = new DataTable();
dt.Columns.Add(dc);
Класс DataColumn имеет несколько перегруженных конструкторов, один из которых позволяет указать имя и тип столбца как параметры:
DataColumn dc = new DataColumn("New Column", typeof(int));
Для строк таблицы можно указать значение по умолчанию в столбце – свойство столбца DefaultValue. Если свойство AllowDBNull установлено в true, то допустимы пустые значения столбца (столбец может содержать объект класса DBNull1).
Свойства AutoIncrement, AutoIncrementSeed и AutoIncrementStep используются для организации автоматического приращения значений столбца (по умолчанию автоприращение не активно). Тип свойства с автоприращением должен быть целочисленным. Автоприращение может быть полезно при организации первичного ключа таблицы2.
При работе с набором данных существует возможность сохранить набор в виде XML-документа. Свойство ColumnMapping настраивает представление столбца при сохранении. Значениями свойства выступают элементы перечисления MappingType. Следующий код обеспечивает сохранение значений столбца id в виде атрибута:
id.ColumnMapping = MappingType.Attribute;
К свойствам для поддержки работы с XML относятся также свойства Namespace и Prefix.
В любой таблице существует возможность создать вычисляемый столбец. Для этого у столбца устанавливается свойство Expression. Это строка, содержащая специальное выражение, используемое для вычисления значений столбца. Подробнее о работе с вычисляемыми столбцами смотрите в документации MSDN.
Столбец имеет свойство ExtendedProperties, которое можно рассматривать как хэш-таблицу, связанную со столбцом. Ключами такой хэш-таблицы должны является строки. Вот пример использования свойства ExtendedProperties:
// Помещаем в ExtendedProperties некоторую информацию
id.ExtendedProperties.Add("Comment", "Primary key");
id.ExtendedProperties.Add("Author", "Alex");
// В произвольный момент можем извлечь ее
Console.WriteLine(id.ExtendedProperties["Comment"]);
Для хранения столбцов класс DataTable использует свойство Columns типа DataColumnCollection. Добавлять столбцы можно по одному (метод DataColumnCollection.Add()) или целым массивом (метод DataColumnCollection.AddRange()). Кроме этого, метод Add() имеет удобную перегруженную версию, которая позволяет неявно создать столбец, указав его имя и тип:
// Создали таблицу
DataTable Artists = new DataTable("Artists");
// Добавили столбцы, которые создали и настроили до этого
Artists.Columns.Add(id);
Artists.Columns.Add(name);
DataTable Users = new DataTable("Users");
// Столбцы можно создавать при добавлении в таблицу...
Users.Columns.Add("id", typeof(int));
Users.Columns.Add("user_name", typeof(string));
Users.Columns.Add("user_address", typeof(string));
// ...а потом их вот так настраивать
Users.Columns["user_name"].MaxLength = 30;