Новости

Создание локальной базы данных

Разрабатывая поделие на шарпе в visual studio легко можно использовать локальную базу данных без необходимости установки СУБД - данные будут находиться в одном фале, собственно там же и структура. Для мидл приложений как я понимаю такая база не рекомендуется а для личного органайзера самое оно. Я для изучения использую Visual Studio 2013 Comunity, инструментами встроенными в нее получилось создать такую базу на раз-два-три... Собственно этот процесс и продемонстрирую.

  
Создание локальной базы данных ШАГ1
Добавляем новый элемент в проект через обозреватель решения. 


Создание локальной базы данных ШАГ2
Выбираем интересующий нас элемент, указываем имя файла.


Нажав кнопку "Add" добавляем соответствующий файл базы данных в проект. После это работать с этим файлом можно через обозреватель решения. Попытавшись открыть файл из обозревателя решения открываем обозреватель сервера - здесь можно построить структуру и произвести прочие действия - не знаю что там позволено сделать с таким вариантом базы.
Далее возникает логичный вопрос - что делать с этим всем - как выполнить вставку и выборку. Для работы с базой дынных из кода требуется получить строку соединения и использовать ее при подключении. Получить этот параметр можно через инструмент источников данных. Открыть его можно комбинацией клавиш alt+shift+D . В панели инструмента можно добавить новый источник данных если пройти полный цикл мастера, если этого не требуется, то можно на третьем шаге просто взять строку соединения.


Создание локальной базы данных ШАГ3

Вот собственно и необходимая нам строка соединения с базой данных.



Небольшой пример кода использующего это подключение:

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            String conStr = "Data Source=(LocalDB)\\v11.0;AttachDbFilename=|DataDirectory|\\dbtest.mdf;Integrated Security=True";
            SqlConnection connection = new SqlConnection(conStr);
            SqlCommand command = new SqlCommand("SELECT * FROM Customers;", connection);
            connection.Open();

            SqlDataReader reader = command.ExecuteReader();
            while (reader.Read())
            {
                DebugTextField.Text += String.Format("{0}, {1}, {2}\n", reader[0], reader[1], reader[2]);
                //Console.WriteLine(String.Format("{0}, {1}", reader[0], reader[1]));
            }

        }