Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpory_1-44.docx
Скачиваний:
19
Добавлен:
21.04.2019
Размер:
1.07 Mб
Скачать

29.Ado.Net. Соединение с бд, строка подключения, Connection, Command. Основные свойства и методы.

ConnectionString

Строка, описывающая параметры подключения к БД

ConnectionTimeout

Время ожидания открытия подключения (в секундах) перед тем, как возникнет исключение «невозможно подключиться к БД»

Database

Имя базы данных, к которой подключаемся

State

Состояние соединения. Принимает значение из перечисления ConnectionState

BeginTransaction()

Метод начинает транзакцию в БД

ChangeDatabase()

Устанавливает новую БД для использования

CreateCommand()

Возвращает объект, реализующий интерфейс iDbCommand, но специфичный для конкретного поставщика данных

Open() и Close()

Попытка соединиться и разъединиться с источником данных

Строка подключения служит для указания параметров подключения к БД. В строке через ; перечислены пары вида <имя_параметра> = <значение>

Параметры строки подключения:

AttachDBFIlenama

/Initial File Name

Используется при подключении к БД представленной файлом (например файл .mdf)

ConnectTimeout

/ConnectionTimeout

Время ожидания подключения к БД

Data Source /Server

/Address /Addr

/Network Address

Имя или сетевой адрес сервера. Для локальных серверов используется значение localhost

InitialCatalog / Database

Имя БД

IntegratedSecurity

/Trusted_Connection

Если установлено в true или SSPI, то используется имя и пароль пользователя в системе Windows

PresistSecurity info

Если установлено в false критическая в плане безопасности информация удаляется сразу после осуществления подключения

UserID

Идентификатор пользователя БД

Password/Pwd

Пароль пользователя БД.

Задать строку подключения можно: либо указав её как параметр конструктора объекта соединения, либо при помощи свойства ConnectionString

Строка соединения должна быть задана до вызова метода с Open()

Для Sql Server обязательным является задание в строке подключения источника данных DataSource имени базы InitialCatalog

Способ аутентификации

SqlConnectionStringBuilder предназначен для облегчения построения правильных строк подключения. Отдельные параметры строки задаются как свойства класса.

var con_string = new SqlConnetionStringBuilder

{

DataSource = “(local)”,

InitialCatalog = “Nortwind”,

IntegratedSecutiry = true

};

SqlConnection con = new

SqlConnection(con_string.ToString());

Строка подключения обычно не прописывается в коде программы, а берётся из конфигурационного файла.

Необходимо не забывать закрывать подключение к БД, т.к. СУБД имеет ограничение на количество одновременных подключений.

Для выполнения запросов любых типов в ADO.NET используются объекты класса command.

Для создания объекта command существует 2 способа:

  1. использование конструктора. Класс SqlCommand использует несколько перегруженных конструкторов:

  • var cmd_1 = new SqlCommand();

  • var cmd_2 = new SqlCommand (“SELECT * FROM Albums”);

  • var con = new SqlConection();

var cmd_3 = new SqlCommand (“SELECT * FROM Artists”, con);

  1. На основе объекта connection

Связь с соединением должна быть установлена для любой команды перед выполнением. В общем случае для этого используется свойство Connection

SqlConnection c = new SqlConnection();

SqlCommand cmd = new SqlCommand();

cmd.connection = c;

Свойство Command.Type и Command.Text

Command.Text содержит текст программы.

Command.Type определяет как следует понимать этот текст. Оно может принимать значения:

CommandType.Text – для SQL – инструкций

CommandType.StoredProcedure тескт программы который содержит имя хранимой процедуры, которая находиться в БД

CommandType.TableDirect – для извлечения из БД полной таблицы.

Методы выполнения команд: За подготовкой команды следует её выполнение, до выполнения команда должна быть связана с соединением и соединение должно быть открыто

  1. ExecuteNonQuery() применяется для запросов, не возвращающих данные. Этот метод возвращает суммарное число строк добавленных, изменённых или удалённых в результате выполнения команды. Если выполняется DDL запрос, то этот метод возвращает значение -1.

  2. ExecuteScalar() может быть полезен при выполнении запросов или хранимых процедур, возвращающих единственный результат. Данный метод выполняет команду и возвращает 1 столбец 1 строки 1 результирующего набора данных.

  3. ExecuteRader() выполняет команду и возвращает объект DbDataReader. Тип возвращаемого Reader’а соответствует поставщику. Данный метод используется когда требуется получить набор данных из базы.

Поставщик MS SQL Server поддерживает метод выполнения команды, возвращающий объект класса XmlReader

Это метод ExecuteXmlReader(). Метод поддерживается для SQL Server 2000 и более поздние версий требует, чтобы возвращаемые данные были в формате XML.

У поставщика SQL Server реализован ряд методов класса SqlCommand, позволяющие выполнять Асинхронные операции.

Например:

BeginExecuteNonQuery

BeginExecuteReader

BeginExecuteXmlReader

EndExecuteNonQuery

EndExecuteReader

EndExecuteXmlReader

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]