На нашем сайте мы используем cookie для сбора информации технического характера и обрабатываем IP-адрес вашего местоположения. Продолжая использовать этот сайт, вы даете согласие на использование файлов cookies. Здесь вы можете узнать, как мы пользуемся файлами cookies.
Я согласен
логотип upread.ru

C# Visual Studio и базы данных: подключаем Microsoft SQL Server Compact



Этим материалом я начну новую серию статей, посвященных работе с базой данных в C# Visual Studio с помощью Microsoft SQL Server Compact 3.5. В процессе работы мы создадим приложение Windows Forms, в котором можно будет работать с файлом базы данных в формате sdf: добавлять записи в таблицу, удалять и изменять их. Также бонусом приложение сделаем "работающим из коробки" и на максимальном количестве даже чистых операционных систем. Уровень статей рассчитан на начинающего разработчика, обладающего хотя бы минимальным опытом работы с Visual Studio.

Сначала необходимо скачать и установить Microsoft SQL Server Compact 3.5 - я качал отсюда. После этого добавляем ссылку в обозревателе решений: вкладка ".NET" - библиотека "System.Data.SqlServerCe.Entity". После создания проекта по шаблону Windows Forms, надо настроить подключение к базе данных, да и не мешало бы её создать. Выбираем "Обозреватель баз данных" - "Подключения данных" - "Добавить подключение" - Источник данных "Microsoft SQL Server Compact 3.5 (Поставщик данных среды .NET для Microsoft SQL Server Compact 3.5)" - создать базу данных (предположим Books.sdf) в любом месте на компьютере - Проверить подключение - Ок. Пароль не устанавливаем, можно выбрать сортировку по "Россия - русский".

Далее создаем таблицу в этой базе, назовем её tbBooks; в ней два столбца: id и name. id - тип int, уникальный; name - тип nvarchar, остальные параметры по умолчанию.

Создаем подключение:

SqlCeConnection cn = new SqlCeConnection(@"Data Source = C:\rab\base\Books.sdf");
Что такое? Visual Studio подчеркивает строку и показывает ошибку "Не удалось найти имя типа или пространство имен "SqlCeConnection" (пропущена директива using или ссылка на сборку?)"? У нас имеет место ошибка с директивой using:

using System.Data.SqlServerCe;
Теперь ошибка должна исчезнуть. Для работы с базами данных есть очень удобный инструмент DataGridView. Добавляем его на нашу форму и подключаем к источнику данных (нашей таблице в базе): "Добавить источник данных проекта" - "База данных" - "Набор данных" - Выбираем наше подключение Books.sdf. Среда может попросить перенести файл в рабочий каталог и изменить настройки подключения: соглашаться не стоит - мы не предатели. Выбираем нашу таблицу tbBooks и подтверждаем наше подключение.

Если сейчас запустить проект, то можно даже изменять ячейки нашей таблицы. Однако, теперь мы имеем сразу две проблемы: во-первых, в столбце id ввод не чисел выбивает страшную и непонятную ошибку, а во-вторых, изменения не сохраняются. Первая проблема решается просто:

private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
        {     
                TextBox tb = (TextBox)e.Control;
                tb.KeyPress += new KeyPressEventHandler(tb_KeyPress);
        }

void tb_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (dataGridView1.CurrentCell.ColumnIndex == 0)
            if (!(Char.IsDigit(e.KeyChar)))
            if (e.KeyChar != (char)Keys.Back) e.Handled = true;
        }
Вторая также несложно. Добавляем на форму кнопку, в обработчик вставляем следующий код:

SqlCeCommand command = new SqlCeCommand("UPDATE tbBooks SET id = @id, name = @name WHERE (id = @id)");
command.Connection = tbBooksTableAdapter.Connection;
tbBooksTableAdapter.Adapter.UpdateCommand = command;

SqlCeParameter parametr;

parametr = new SqlCeParameter("@id", SqlDbType.Int);
parametr.SourceColumn = "id";
command.Parameters.Add(parametr);

parametr = new SqlCeParameter("@name", DbType.String);
parametr.SourceColumn = "name";
command.Parameters.Add(parametr);

tbBooksTableAdapter.Update(booksDataSet.tbBooks);
MessageBox.Show("Изменения успешно сохранены");
Таким образом, в этой статье мы научились создавать базы данных, подключения к ним, таблицы в них, а также редактировать с помощью встроенного интерфейса.

Продолжение следует...




тегистатьи IT, си шарп, базы данных, SQL, Visual Studio





Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.




Печать dataGridView из C++/CLI в Visual Studio
Оптимизация программ


© upread.ru 2013-2019
При перепечатке активная ссылка на сайт обязательна.
Задать вопрос
письмо
Здравствуйте! Вы можете задать мне любой вопрос. Если не получается отправить сообщение через эту форму, то пишите на почу up777up@yandex.ru
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.