
- •Организация 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#-системы ввода-вывода: байтовые и символьные потоки. Встроенные потоки.
17. Работа с бд с пом. Sql-запросов. Класс SqlCommand. Объект Command. Создание и инициализация. Командная строка sql-запроса CommandText.
Класс SqlCommand. Компоненты данных ADO.NET в Visual Studio инкапсулируют функциональные возможности доступа к БД различными способами, что помогает разрабатывать программные продукты значительно быстрее и с меньшим количеством ошибок. Команды данных абстрагируют задачу построения и выполнения инструкций SQL или хранимых процедур.
Тип SqlCommand является объектным представлением SQL-запроса, имени таблицы или хранимой процедуры, выполняемой над базой данных SQL Server. Вид команды указывается с помощью его свойства CommandType: Text (по умолчанию), TableDirect, StoredProcedure. Класс SqlCommand предоставляет также инструкцию Transact_SQL.
При создании экземпляра SqlCommand свойствам чтения и записи задаются начальные значения. Этот класс не наследуется.
Класс SqlCommand содержит следующие члены:
Конструкторы
SqlCommand() – инициализирует новый экземпляр класса SqlCommand.
SqlCommand(String) – инициализирует новый экземпляр класса SqlCommand с текстом запроса.
SqlCommand(String, SqlConnection) – инициализирует новый экземпляр класса SqlCommand текстом запроса и подключением SqlConnection.
SqlCommand(String, SqlConnection, SqlTransaction) – инициализирует новый экземпляр класса SqlCommand с текстом запроса, подключением SqlConnection и транзакцией SqlTransaction.
Свойства
1) Connection – подключение к базе данных. Можно использовать как существующее подключение, так и создавать новое.
2) CommandType – тип команды (запроса), который будет направляться к базе данных. Возможны следующие значения:
Text. Текстовая команда состоит из SQL-конструкции, направляемой к базе данных. Это значение используется по умолчанию.
StoredProcedure. Текстовая команда состоит из названия хранимой проце дуры.
TableDirect. Текстовая команда состоит из названия таблицы базы данных. В результате извлекается все содержимое таблицы. Эта команда аналогична текстовой команде SELECT * FROM Название_таблицы. Данная команда поддерживается только управляемым поставщиком OLE DB.
3) CommandText – собственно сам текст запроса. Он возвращает или задает инструкцию Transact_SQL, имя таблицы или хранимую процедуру, выполняемую для источника данных. (Переопределяет DbCommand.CommandText.)
4) CommandTimeout – возвращает или задает время ожидания перед завершением попытки выполнить команду и созданием ошибки.
5) Parameters – получает объект-коллекцию типов SqlParameterCollection, используемых для параметризованного запроса.
6) Transaction – получает или задает объект SqlTransaction, в рамках которого выполняется команда SqlCommand.
Методы
Cancel – пытается отменить выполнение SqlCommand. (Переопределяет DbCommand.Cancel().)
Clone – создает новый объект SqlCommand, являющийся копией текущего экземпляра.
CreateParameter – создает новый экземпляр объекта SqlParameter.
Dispose() – освобождает все ресурсы, используемые объектом Component. (Унаследовано от Component.)
GetType – возвращает объект Type для текущего экземпляра. (Унаследовано от Object.)
ExecuteReader() – Возвращает объект SqlDataReader поставщика данных для доступа к соответствующим данным в режиме однонаправленного чтения.
ExecuteNonQuery() –Направляет текст Sql-команды в хранилище данных.
Объект Command. Создание и инициализация. При определении объектов ADO .NET DataAdapter был назван адаптером, преобразователем, предназначенным для взаимодействия с базой данных. Это действительно так, однако если рассматривать взаимодействие с базой данных более глубоко, то выясняется, что в ADO .NET есть специализированный объект для выполнения запросов, называемый Command. Под запросами понимается выполнение SQL-конструкций или запуск хранимых процедур. Этот объект среда создает неявным образом в методе InitializeComponent.
Примеры создания объектов команд для представления SQL-запросов:
// Создание объекта команды с помощью аргументов конструктора:
string strSQL = "Select * From Друзья";
SqlCommand mycommand = new SqlCommand(strSQL, cn);
Console.WriteLine(mycommand.CommandText);
//Создание объекта команды с помощью свойств класса SqlCommand:
SqlCommand testcommand = new SqlCommand();
testcommand.Connection = cn;
testcommand.CommandText = "Select * [From Информация о друзьях]";
Console.WriteLine("Тип команды " + testcommand.CommandType);
Следует понимать, что в этот момент непосредственно SQL-запросы не предъявлены базе данных. Здесь только лишь подготовлены объекты команд для использования в будущем.
После создания активного соединения и SQL-команды следующим шагом является предъявление запроса источнику данных.
Командная строка SQL-запроса CommandText. Для извлечения таблиц и содержащихся в них данных используются SQL-запросы. Переменная CommandText содержит в себе SQL-запрос, синтаксис которого адаптирован для данного поставщика данных. Мы можем управлять извлечением данных, изменяя строку CommandText. Например, если на экранной форме приложения столбец «Код туриста» отображать не нужно, то SQL-запрос будет выглядеть след обр:
string CommandText = "SELECT Фамилия, Имя, Отчество FROM Туристы";
Выведем теперь все записи клиентов, имена которых начинаются на "О": string CommandText="SELECT Фам,Имя,Отчество FROM Туристы where Имя like 'О%'";
Можно использовать все возможности языка манипулирования данными (DML) SQL для отбора данных и модификации строки CommandText для получения нужного результата.