Цель работы: Освоить технологию создания соединения приложения с источником данных, используя конфигурационный файл.
Для получения доступа к базе данных необходимо задать параметры app.config. Для разработанного приложения конфигурационный файл имеет следующий вид:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
<add name="Employee"
connectionString="Data Source=MYHOME-8834E210;Initial Catalog=Employee;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
В строке соединения ( connectionStrings ) задается имя соединения ( name ), в нашем случае - "Employee", собственно строка соединения ( connectionString ), в нашем случае - "Data Source=MYHOME-8834E210;Initial Catalog=Employee;Integrated Security=True" и поставщик для клиента базы данных ( providerName ), в нашем случае - "System.Data.SqlClient".
В строке соединения используются следующие параметры:
Data Source - имя сервера базы данных, с которым устанавливается соединение;Initial Catalog - имя (экземпляр) базы данных, с которым устанавливается соединение;Integrated Security - параметр, определяющий режим аутентификации ( true - соответствует Windows Aunthentication ) для установления соединения с базой данных.При разработке приложения в процессе создания класса DataSet строка соединения была автоматически сгенерирована в коде класса DataSetEmployee. Такой способ задания соединения с базой данных является целесообразным на этапах разработки и тестирования функциональности приложения. При развертывании приложении у заказчика такой способ хранения
Для задания строки соединения создадим метод GetDatabaseConnection, который возвращает экземпляр класса SqlConnection.
private SqlConnection GetDatabaseConnection(string name)
{
SqlConnection conn = null;
ConnectionStringSettings setting = ConfigurationManager.ConnectionStrings[name];
if (setting != null)
try
{
conn = new SqlConnection(setting.ConnectionString);
/// Проверка соединения с сервером базы данных
conn.Open();
conn.Close();
}
catch (SqlException ex)
{
MessageBox.Show("Прерывание при соединении с базой данных:\n\n
Проверьте строку соединения в конфигурационном файле", "Предупреждение!",
MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1);
conn = null;
}
else
{
MessageBox.Show("Отсутствует соединение с базой данных
\n\n Проверьте имя строки соединения в конфигурационном файле",
"Предупреждение!", MessageBoxButtons.OK, MessageBoxIcon.Warning,
MessageBoxDefaultButton.Button1);
}
return conn;
}
В данном коде используются классы ConnectionStringSettings и ConfigurationManager из пространства имен System.Configuration. Данное пространство имен необходимо подключить к проекту. Для этого в главном меню выберите пункт Project / Add Reference (рисунок 14.1) или в окне Solution Explorer щелкните правой кнопкой мыши на пункте Reference (рисунок 14.2).

(рис 14.2) Выбор режима добавления ссылки на новое пространство имен из главного меню(рис 14.1) Выбор режима добавления ссылки на новое пространство имен из контекстного менюВ окне Add Reference выберите пространство имен System.Configuration и, нажав кнопку OK, добавьте ссылку в проекте на него (рисунок 14.3).
(рис 14.3) Окно Add Reference добавления ссылок в проектКроме того, необходимо в файле FormEmployee.cs добавить спецификацию пространства имен System.Configuration (рисунок 14.4).
(рис 14.4) Спецификация пространства имен System.Configuration в файле FormEmployee.csВ методе GetDatabaseConnection вначале объявляется экземпляр conn класса SqlConnection. Далее читается раздел именованной строки соединения (с этой целью используется класс ConnectionStringSettings ) из конфигурационного файла. Экземпляру setting присваивается значение строки соединения с помощью свойства ConnectionStrings статического класса ConfigurationManager.
Для корректной работы приложения необходимо проверить правильность полученной информации из конфигурационного файла. При проверке сначала анализируется сформирована ли какая-нибудь строка соединения if (setting != null), а затем - корректность сформированной строки
try
{ conn = new SqlConnection(setting.ConnectionString);
conn.Open();
conn.Close();}
catch (SqlException ex)
{ MessageBox.Show("Прерывание при соединении с базой данных:\n\n
Проверьте строку соединения в конфигурационном файле", "Предупреждение!",
MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1);
conn = null;}
После добавления в код класса FormEmployee метода GetDatabaseConnection необходимо провести модификацию приложения. Во-первых, в коде класса FormEmployee необходимо объявить экземпляр conn класса SqlConnection. Во-вторых, требуется модификация конструктора класса.
public FormEmployee()
{
InitializeComponent();
bmEmployee = this.BindingContext[dsEmployee, "Employee"];
bmEmployee.PositionChanged +=new EventHandler(BindingManagerBase_PositionChanged);
conn = GetDatabaseConnection("Employee");
if (conn == null)
{ Application.Exit(); }
else {
daEmployee.Connection = conn;
daJobTitle.Connection = conn; }
}
В приведенном коде добавленные строки выделены. Модификация конструктора класса FormEmployee приводит к тому, что экземпляр соединения с базой данных conn задается с помощью метода GetDatabaseConnection. Затем полученное соединение передается свойству Connection адаптеров daEmployee и daJobTitle. Если экземпляр соединения с базой данных conn не сформирован, то работа приложения завершается.
При выполнении приложения, если не найдена в конфигурационном файле именованная строка соединения, то выдается предупреждение, приведенное на рисунке 14.5, а в случае неправильной строки соединения выдается предупреждение, приведенное на рисунке 14.6.

(рис 14.6) Предупреждение об отсутствии именованная строка соединения(рис 14.5) Предупреждение об ошибке в строке соединенияДля получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.