Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архитектура информационных систем.docx
Скачиваний:
73
Добавлен:
23.05.2015
Размер:
32.29 Mб
Скачать

Создание и изменение таблицы table

Синтаксис команды Create table

CREATE TABLE имя_таблицы

(тип поля1[(размер)] [NOT NULL]

[индекс]

[, тип поля2 [(размер)][NOT NULL][индекс2]

[,…][,CONSTRAINT ограничение1[,…]]

)

Изменение таблицы ALTER TABLE

пример

Создание индекса

Для создания индекса существующей таблицы используется команда CREATE INDEX. Синтаксис

CREATE [UNIQUE] INDEX имя_индекса

ON таблица (поле1 [DESC] [,поле2 [DESC],…])

[WITH {PRIMARY | DISSALOW|IGNORE NULL}]

Аргумент WIRH PRIMARY делает проиндексированное поле или поля первичным ключом таблицы

CREATE INDEY YearIndex ON Cars(Year)

Ограничение

Ограничение – это логическое условие, которое должно выполняться для поля или сочетания полей.

Например – уникальность.

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

Создать ограничение можно с помощью команды CREATE TABLE или ALTER TABLE с предложением CONSTRAINT

Пример: запретить оставлять поле пустым может запрос

ALTER TABLE Cars ALTER COLUMN Condition TEXT CONSTRAINT ConditioRequired NOT NULL

Создание связи с помощью ограничения

Пример

Ado.Net

ADO.NET - это набор классов, представляющих службы доступа к данным для платформы .NET Framework

  • представляет доступ к реляционным данным, XML-данным и пр.

  • содержит набор компонентов для создания распределенных приложений

ADO.NET разделяет доступ к данным и обработку данных на дискретные компоненты, которые могут использоваться отдельно или совместно.

В ADO.NET нет единого набора типов, которые взаимодействуют с различными СУБД

Включает различные поставщики данных, каждый из окторых оптимизирован для конкретной СУБД.

Поставщики данных ado.Net

OLEDB,MicrosoftSQLServerи т д

System.Data.OleDb

System.DataSqlClient

Компоненты ado.Net

Объект Connection- позволяет подключаться к хранилищу данных, дают доступ к объектам транзакций

Объект Command- предоставляетSQLзапрос или хранимую процедуру. Позволяет обращаться к командам БД для получения сведений о параметрах

DataReader - предоставляет доступ к данным, предназначенным только для чтения

DataAdapter- передает наборы данных между вызывающим процессом и хранилищем данных

Подключенный и автономный режим ado.Net

При использовании подключенного уровня (connection layer) кодовая база явно подключается к соответствующему хранилищу данных и отключается от него.

  • Взаимодействие с хранилищем данных с помощью объектов подключения, объектов команд и объектов чтения данных.

Автономный уровень (disconnection layer)позволяет работать с набором объектовDataTable(содержащихся вDataSet), которой представляет на стороне клиента копию внешних данных.

Получив объект DataSet, вызывающий код может просматривать и обрабатывать данные без затрат на сетевой трафик

Если нужно занести изменения в хранилище данных, то адаптеру данных (вместе с набором операторов SQL) задействуется еще раз - для обновления данных, после чего подключение прерывается.

Подключенный уровень

При необходимости подключиться к БД и прочитать записи нужно:

  • Создать, настроить и открыть объект подключения.

  • Создать и настроить объект команды,указав объект подключения в аргументе конструктора или через свойства Connection.

  • Вызвать метод ExecuteReaderнастроенногообъекта команды.

  • Обработать каждую запись с помощью метода Read() объекта чтения данных.

Класс dbConnection

  • свойства

    • ConnectionString- задает строку, используемую для открытия подключения

    • ConnectionTimeout- время ожидания при установлении подключения, по истечению которого попытка подключения завещается

  • методы

    • Open() - открытие соединения

    • Close() - закрытие соединения

Строка соединения

Объект OleDbConnection

  • Provider

  • Data Source (Server)

  • uid (User ID)

  • pwd (Passowrd)

Формат строки соединения

  • "param1=v1;param2=v2;..."

  • paramxx- имя параметра строки соединения

  • VXX- значение параметра

Пример строки соединения

string connString=@"Data Source="""test.mdb"";Provider=Microsoft.Jet.OLEDB.4.0"

Пример использования объекта Connection

string connString=@"Data Source="""test.mdb"";Provider=Microsoft.Jet.OLEDB.4.0"

var conn.ConnectionString=connString;

conn.Open();

//

conn.Close();

Класс dbCommand

Класс команд, позволяет выполнить действия с базой данных (выборку, обновление, дополнение, удаление и т.п.)

Свойства

  • CommandText содержит

    • текст оператора SQL;

  • Connection - ссылка на открытие соединение (объектConnectiom);

  • Parameters - коллекция параметров запроса

Основные метода выполнения Command

  • ExecuteReader()- выполняет операторSELECT, создает и возвращает ссылку на объектDataReader, который содержит результат выполнения запроса.

  • ExecuteNonQuery() -выполняет операторыINSERT,DELETE,UPDATEна языкеSQL(возвращает количество обработанных записей)

  • ExecuteScalar()- возвращает первую строку первого столбца в результирующем наборе (используя функцииCUNT,AVG,MIN,MAX,SUM)

Метод ExecuteReader()

  • Создает объект DataReaderи возвращает ссылку на него

  • Текст команды должен содержать оператор Select.

Класс dbDataReader

Объекты данного класса позволяют выполнять только чтение данных из БД, полученных с помощью объекта Command, Только в одном направлении (от начала к концу)

Одновременно объект DataReaderдает доступ только к одной записи выборки

Объект DataReader

Для перехода к следующей записи выборки используется метод

  • bool Read():читает текущую запись и перемещает указатель на следующую запись

Если метод Readвозвращаетtrue, то следующая запись прочитана, если записи нт, то возвращаетfalse

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

  • Close: Окончание работы с данными вDataReader

Чтение записей таблицы с помощью CommandиDataReader

Метод ExecuteNonQuery()

Позволяет выполнить такие команды:

  • команда корректировки (возвращает количество измененных записей)

  • INSERT

  • UPDATE

  • DELETE

другие команды, которые не возвращают значений (результат -1)

  • CREATE DATABASE

  • CREATE TABLE

Добавление записей в БД Access

Метод ExecuteScalar()

возвращает первую строку первого солбца в результирующем

Вычисление количества записей в таблице

Быстрая разработка БД

Потоки и сокеты в .NET

Поток (stream)

Абстрактное представление последовательного устройства, для которого сохранение и считывание данных выполняется побайтно.

Базовые устройства для потока - файл, принтер, сокет...

  • Основной класс -Stream(абстрактный класс)

  • Stream - операции ввода/вывода двоичных данных

  • TextReader (TextWriter) - символьных данных

  • BinatyReeder (BinaryWriter)- простых типов

(!) Методы для синхронных и асинхронных операций.

Класс Streamи производные классы

Каждый производный класс характеризуется своим базовым устройством

FileStream- для хранения потоков использует файлы

NetWorkStream- не имеет никакого поддерживающего устройства.

Члены класса Stream- свойства

Свойства

Описание

CanRead

Позволяет проверить, поддерживает ли текущий поток чтение

CanSeak

Поиск - для установки позиции в текущем потоке. Свойство проверяет, поддердивате ли текущий поток операцию поиска. Потоки, не имеющие поддерживающих устройств, всегда буду возвращать FALSE

CanWrite

Позволяет проверить, поддерживает ли поток запись

Length

Свойство только чтения, представляет длину потока в байтах. Может использоваться для проверки конца потока, или для определения размера буфера

Position

Используется для получения или установки текущей позиции в потоке (поток должен поддерживать поиск)