Технологии разработки Internet-приложений

Содержание

Слайд 2

Класс SqlConnection

Для того, чтобы получить возможность взаимодействия с источником БД посредством

Класс SqlConnection Для того, чтобы получить возможность взаимодействия с источником БД посредством
ADO.NET, приложение должно первым делом установить подключение к этому источнику данных. Классом представляющим физическое подключение к SQL Server, является SqlConnection из пространства имен System.Data.SqlClient. Это скрытый (не наследуемый ) клонируемый класс, реализующий интерфейс IDbConnection.
У класса SqlConnection есть два конструктора. Один из них используется по умолчанию и не имеет параметров, а другой имеет один параметр-строку подключения:
public SqlConnection();
public SqlConnection(string);
Следующий код демонстрирует типичный способ конфигурирования и установки подключения к SQL Server: 
string connString = "SERVER=...;DATABASE=...;LOGIN=...;PWD=...";
SqlConnection conn = new SqlConnection(connString);
conn.Open();
...
conn.Close();

Слайд 3

Свойства класса SqlConnection

Свойства класса SqlConnection

Слайд 4

Методы класса SqlConnection

Методы класса SqlConnection

Слайд 5

Примечание!

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

Примечание! Следует заметить, что когда объект подключения выходит из области видимости приложения,
он автоматически закрывается. Позднее, но не обязательно сразу, сборщик мусора удалит этот объект, однако подключение останется открытым, поскольку сборщик не знает особенностей каждого объекта и не может выполнять действия, которые определяются их семантикой.
Так что, не забывайте явно закрывать подключение, вызывая метод Close или Dispose до того, как объект выйдет за пределы видимости.

После установки между клиентом и базой данных физического канала связи можно начинать подготовку и выполнение команд. Объектная модель ADO.NET определяет два типа командных объектов – традиционный одноразовый командный объект и адаптер данных. Первый выполняет команду SQL или хранимую процедуру и возвращает курсор, с помощью которого можно осуществить проход по записям и прочитать данные. Пока курсор используется, подключение активно и открыто.
Адаптер данных – более мощный объект, сам он использует одноразовый командный объект и курсор, а программисту предоставляет интерфейс, позволяющий работать с данными после отключения от их источника. Для этого адаптер извлекает данные и загружает их в контейнерный класс DataSet или DataTable.

Выполнение команд

Слайд 6

Класс SqlCommand

Данный класс представляет оператор SQL Server или хранимую процедуру. Объект

Класс SqlCommand Данный класс представляет оператор SQL Server или хранимую процедуру. Объект
Command исполняет запрос SQL, который может быть в форме встроенного текста, процедуры сервера или прямого доступа к таблице. Рассмотрим набор конструкторов класса SqlCommand:
Public SqlCommand();
Public SqlCommand(string);
Public SqlCommand(string, SqlConnection);
Public SqlCommand(string, SqlConnection, SqlTransaction);
Аргумент string содержит текст подлежащий выполнению команды или имя хранимой процедуры, аргумент SqlConnection – объект предназначенного для этой цели подключения, а аргумент SqlTransaction, если он создан, представляет транзакционный контекст, в котором будет выполняться команда. Командные объекты ADO.NET никогда сами не открывают подключение. Программист должен явно связать его объект с объектом команды, а также явно открыть и закрыть подключение.

Слайд 7

Класс SqlConnection (свойства)

Класс SqlConnection (свойства)

Слайд 8

Класс SqlConnection (методы)

Класс SqlConnection (методы)

Слайд 9

Способы выполнения команд

Для выполнения команд используются следующие методы, ExecuteNonQuery, ExecuteReader, ExecuteScalar.

Способы выполнения команд Для выполнения команд используются следующие методы, ExecuteNonQuery, ExecuteReader, ExecuteScalar.
Они действуют практически одинаково, но возвращают разные значения. Обычно для выполнения операций обновления, таких как UPDATE, INSERT и DELETE, используется метод ExecuteNonQuery, возвращающий количество задействованных в операции строк. Для операций других типов, таких как SET или CREATE, он возвращает значение -1.
Метод ExecuteReader предназначен для выполнения запросов на выборку. Он возвращает объект чтения данных – экземпляр класса SqlDatareader. Если попытаться выполнить посредством метода ExecuteReader запрос на обновление, то обновление данных будет произведено успешно, но вы не получите обработанных строк.
Когда требуется получить единственное значение, удобнее всего воспользоваться методом ExecuteScalar. Он прекрасно работает с операторами SELECT COUNT или командами, возвращающими агрегированные данные. Этот метод можно вызывать и для обычных запросов – в таком случае вы получите значение первого столбца первой строки результирующего набора, а все остальные будут проигнорированы.

Слайд 10

Пример подключения к БД

1. Выбираем факультет

2. Результат - меняются специальности

Пример на сервере

Пример подключения к БД 1. Выбираем факультет 2. Результат - меняются специальности Пример на сервере ДонНУ
ДонНУ

Слайд 11

Заполнение факультетов элемента DropDownList данными из БД

очистка предыдущих значений

Заполнение специальностей элемента DropDownList

Заполнение факультетов элемента DropDownList данными из БД очистка предыдущих значений Заполнение специальностей
данными из БД

Код C# примера

Слайд 12

private List ListFak = new List();
private List ListFakIndex = new List();
public

private List ListFak = new List(); private List ListFakIndex = new List();
Select_fuс(string SqlStringConn)
{
string Zapros = "Select * From n_fak Order By nfak";
string SqlStringConnAb = SqlStringConn;
using (SqlConnection conn = new SqlConnection(SqlStringConnAb))
{
SqlCommand cmd = new SqlCommand(Zapros, conn);
cmd.Connection.Open();
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
ListFak.Items.Add( reader["nfak"].ToString() );
ListFakIndex.Items.Add( reader["fak"].ToString() );
}
reader.Close();
}}
//возвращает название факультета по заданному индексу
public string GetFaс(int num)
{
string s = "Факультет не найден!";
if ((num < 0) || (num > 14))
return s;
else
return ListFak.Items[num].ToString();
}

Код из класса dnuClassSelectFuc

Строим SQL-запрос

Подключаемся к базе

Метод класса GetFaс - возвращает название факультета по заданному индексу

Имя файла: Технологии-разработки-Internet-приложений.pptx
Количество просмотров: 112
Количество скачиваний: 0