Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
NET
ВВЕДЕНИЕ
ADO.NET
2
Присоединенная
Предполагается наличие постоянного соединения между
источником и приемником данных вне зависимости от
того, осуществляется ли непосредственная передача
данных в текущий момент времени
Отсоединенная
Соединение устанавливается только на момент обмена
данными
Присоединенная модель
4
Примеры
Интернет-соединение
Телефонный разговор
Чат
Удаленная хирургия
Правительственные линии связи
Присоединенная модель
5
Плюсы
При запросе данных не тратится время на установку
соединения
Всегда доступны свежие данные
Минусы
Необходимо постоянное наличие соединения и средств
для его обеспечения
При отсутствии необходимости передачи данных
соединение все равно остается занятым
Отсоединенная модель
6
Примеры
Почтовый сервер
Доступ к web-приложениям
Библиотека
Системы контроля версий
Отсоединенная модель
7
Плюсы
Более низкие требования к соединению
Можно работать при отсутствии связи
Можно обработать больше запросов
Минусы
Больше времени непосредственно на доступ к данным
Локальная копия данных может быть неактуальной
Возможно наличие конфликтов
Классы ADO.NET
8
Порядок действий:
1. Получить строку подключения
2. Создать объект SqlCommand (задать ему строку
подключения, собственно SQL команду, параметры)
3. Установить соединение
4. Скачать или записать данные (выполнить команду)
5. Разорвать соединение
Строка подключения
10
Место хранения:
Конфигурационный файл
Ввод данных пользователем
Основные элементы
Data Source
Initial Catalog
Integrated Security
User ID
Password
Строка подключений
11
Формат
«Setting1 = Value1; Setting2 = Value2;…»
Пример
“Data Source=.\SqlExpress; Initial Catalog=Northwind; User
ID=User; Password=12345”
“Data Source=Nt-server; Initial Catalog=Base; Integrated
Security=True”
Строка подключения в конфигурационном
файле
12
string connectionString =
System.Configuration.ConfigurationManager.
ConnectionStrings["connectionString"].
ConnectionString;
Неправильная установка соединения
14
connection.Open();
// действия с базой
connection.Close();
Правильная установка соединения (вариант 1)
15
try
{
SqlConnection connection = new
SqlConnection(connectionString);
connection.Open();
// действия с базой
}
finally
{
connection.Close();
}
Правильная установка соединения (вариант
2)
16
Интерфейс IDisposable
Основные свойства
CommandText
CommandType (Storage Procedure, Text, TableDirect)
Connection
Parameters
Класс SqlCommand
18
Основные методы
ExecuteNonQuery (int)
ExecuteReader (DataReader)
ExecuteScalar (object)
ExecuteXmlReader (XmlDataReader)
Класс SqlDataReader
19
Свойства
FieldCount
HasRows
Основные методы
[] параметры int и string
Get…(int columnNumber)
NextResult
Read
Пример
20
Грубейшая ошибка:
command.CommandText = "SELECT * FROM users WHERE name = ‘"
+ txtName + "’";
Причина
Иванов’; DROP TABLE users; SELECT * FROM users WHERE
name=‘user
Правильное решение
command.CommandText = "SELECT * FROM users WHERE name =
@name";
command.Parameters.Add(new SqlParameter("@name",
txtName.Text));
Хранимые процедуры
Трехслойная архитектура
22
Цели
Отображение данных пользователю
Манипуляции, связанные с отображением (сортировка,
фильтрация)
Получение данных
Первичная «защита от дурака»
Чего быть не может
Обращений к базе
Операций, имеющих отношение к логике работы
программы
Business Logic Layer
24
Цели
Предоставление данных PL
Функциональное обеспечение работы системы (вся логика)
Чего быть не может
Обращения к базе данных
Любого кода, имеющего отношения к интерфейсу
(Console.WriteLine, TextBox1.Text…)
Data Access Layer
25
Цели
Обращения к базе (чтение/сохранение данных)
Чего быть не может
Функциональной логики
Любого кода, имеющего отношения к интерфейсу
(Console.WriteLine, TextBox1.Text…)
Два подхода к формированию Бизнес-логики
26
27
DataReader vs DataAdapter
28
Класс DataSet
29
DataSet
30
Класс DataAdapter
31
Назначение DataAdapter
32
Метод Fill класса DataAdapter
33
Обращение к данным в DataSet
34
Обращение к данным в DataSet
35