
- •Организация c#-системы ввода-вывода: байтовые и символьные потоки. Встроенные потоки.
- •Классы потоков. Класс Stream. Классы байтовых потоков. Классы символьных потоков. Классы двоичных потоков.
- •Класс FileStream и файловый ввод-вывод на побайтовой основе. Открытие и закрытие файла. Запись данных в файл. Считывание байтов из объекта класса FileStream.
- •Файловый ввод-вывод с ориентацией на символы. Использование класса StreamWriter. Использование класса StreamReader.
- •Считывание и запись двоичных данных. Класс BinaryWriter. Класс BinaryReader.
- •6. Навигация по файловой системе: классы для работы с файловой системой.
- •7. Получение сведений о файле; копирование файлов; перечисление файлов в папке; изменение расширения файлов.
- •5.3. Изменение расширения файлов
- •8. Основы организации потоков. Потоки и многозадачность. Пространство имен System.Threading. Класс Thread. Создание потока.
- •9. Использование нескольких потоков. Планирование потоков, приоритеты потоков.
- •10. Проблемы одновременности и синхронизации потоков. Общий доступ к данным из разных потоков, предотвращение коллизий.
- •11. Синхронизация доступа к общим данным с помощью блокировок. Управление временем существования потоков.
- •12. Краткий обзор ado.Net. Три стороны технологии ado.Net. Пространство имен System.Data.
- •13. Поставщики данных ado.Net. Поведение объектов подключения.
- •14. Объектная модель ado.Net
- •16. Создание соединения с источником данных. Члены типа dbConnection. Обработка исключений при работе с ms sql
- •Конструкторы
- •Свойства
- •События
- •17. Работа с бд с пом. Sql-запросов. Класс SqlCommand. Объект Command. Создание и инициализация. Командная строка sql-запроса CommandText.
- •Конструкторы
- •Свойства
- •18. Выборка, добавление, удаление и обновление данных с помощью sql-запросов на подсоединенном уровне.
- •19. Вывод информации с использованием объекта чтения данных: создание SqlDataReader; чтение данных из DataReader; чтение полей из текущей записи; закрытие DataReader.
- •20. Организация хранения данных. Объект DataSet
- •21. Таблицы и поля: объекты DataTable и DataColumn
- •22. Строки: объект DataRow
- •23. Связи между таблицами: объект DataRelation
- •24. Создание подключения к базе данных. Управляемые провайдеры
- •25. Объект DataAdapter. Класс SqlDataAdapter
- •Конструкторы:
- •Свойства
- •Организация c#-системы ввода-вывода: байтовые и символьные потоки. Встроенные потоки.
14. Объектная модель ado.Net
Лишь подключенные приложения не удовлетворяют всем требованиям, предъявляемым к современным распределенным приложениям. В автономных приложениях, созданных с помощью ADO.NET, используют иной подход. Для обеспечения автономности используются объекты DataAdapter. Они осуществляют выполнение запросов, используя для этого объекты подключения. А результаты выполнения, то есть данные, передаются автономным объектам.
Благодаря такому принципу автономные объекты не знают о существовании объектов подключения, так как напрямую не работают с ними. Таким образом, реализация объекта, хранящего данные, не зависит от конкретного поставщика данных, а именно от СУБД. Поскольку конкретная реализация адаптера данных зависит от соответствующего источника данных, конкретные адаптеры данных реализованы в составе конкретных поставщиков.
А
втономные
приложения обычно подключаются к базе
как можно позже и отключаются как можно
раньше. Важным элементом в такой схеме
подключения и предоставления автономного
доступа к данным является контейнер
для табличных данных, который не знает
о СУБД. Такой незнающий о СУБД автономный
контейнер для табличных данных представлен
в библиотеках ADO
.NET
классом DataSet
или DataTable.
Объектная модель ADO .NET представлена на рисунке.
Объектная модель ADO .NET предполагает существование (при написании приложения для работы с базой данных — использование) двух множеств классов, выполняющих четко определенные задачи при работе с базой данных
Классы подсоединенных объектов обеспечивают установление соединения с базой данных и управление базой со стороны приложения. Классы отсоединенных объектов обеспечивают сохранение, использование и преобразование полученной от базы данных информации на стороне приложения. Архитектуру ADO.NET можно разделить на две фундаментальные части: подключаемую и автономную. Все классы в ADO.NET можно поделить по этому критерию. Единственное исключение – класс DataAdapter, который является посредником между подключенной и автономной частями ADO.NET.
15. Краткий обзор объектов ADO .NET.
Источник данных DataSet. Это специализированный объект-образ базы данных, представляющий собой локальные копии любого количества взаимосвязанных таблиц данных. Класс DataSet является ядром автономного режима доступа к данным в ADO.NET. Лучше всего рассматривать его с позиции, как будто в нем есть своя маленькая СУБД, полностью находящаяся в памяти.
DataSet состоит из объектов типа DataTable и объектов DataRelation. В коде к ним можно обращаться как к свойствам объекта DataSet. Свойство Tables возвращает объект типа DataTableCollection, который содержит все объекты DataTable используемой базы данных.
Таблицы и поля (объекты DataTable и DataColumn). Объекты DataTable используются для представления одной из таблиц базы данных в DataSet. В свою очередь, DataTable составляется из объектов DataColumn. DataColumn – это блок для создания схемы DataTable. Каждый объект DataColumn имеет свойство DataType, которое определяет тип данных, содержащихся в каждом объекте DataColumn. Например, тип данных может быть целым числом, строковым данным, логическим данным и т.д. Поскольку данные, содержащиеся в DataTable, обычно переносятся обратно в исходный источник данных, необходимо согласовывать тип данных с источником.
Строки (объект DataRow). Коллекция Rows объекта DataTable возвращает набор строк (записей) заданной таблицы. Эта коллекция используется для изучения результатов запроса к базе данных. Мы можем обращаться к записям таблицы как к элементам простого массива.
Объект DataRelation. Этот класс позволяет задавать отношения между различными таблицами, с помощью которых можно проверять соответствие данных из различных таблиц. Объект DataSet имеет свойство Relations, возвращающее коллекцию DataRelationCollection, которая в свою очередь состоит из объектов DataRelation. Каждый объект DataRelation выражает отношение между двумя таблицами (сами таблицы связаны по какому-либо полю (столбцу)). Следовательно, эта связь осуществляется через объект DataColumn.
О
бъект
DataAdapter.
Для осуществления взаимодействия между
DataSet и собственно источником данных
используется объект типа DataAdapter. Само
название этого объекта – адаптер,
преобразователь,
– указывает на его природу. DataAdapter
содержит методы Update()
и Fill() для обновления данных из базы и
заполнения объекта DataSet.
Можно
использовать четыре команды объекта,
чтобы получить любые обновления:
UpdateCommand, InsertCommand, DeleteCommand и SelectCommand.
Использование объекта SQLDataAdapter для
передачи данных между базой данных SQL
Server и объектом DataSet: DataView
-объект
представлений
базы данных,
который обеспечивает пользовательское
представление для DataTable с использованием
сортировки, фильтрации, поиска,
редактирования и навигации. Это
отличает объект от метода Select
из DataTable, который возвращает массив
DataRow из таблицы, и содержание которого
отражает изменения в базовой таблице,
но, состав и упорядочение остаются
неизменными. Динамические
возможности DataView делают его идеальным
для привязки данных в приложениях.