Как добавить базу данных в visual studio wpf
Сначала необходимо скачать и установить 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, остальные параметры по умолчанию.
Что такое? Visual Studio подчеркивает строку и показывает ошибку "Не удалось найти имя типа или пространство имен "SqlCeConnection" (пропущена директива using или ссылка на сборку?)"? У нас имеет место ошибка с директивой using:
Теперь ошибка должна исчезнуть. Для работы с базами данных есть очень удобный инструмент DataGridView. Добавляем его на нашу форму и подключаем к источнику данных (нашей таблице в базе): "Добавить источник данных проекта" - "База данных" - "Набор данных" - Выбираем наше подключение Books.sdf. Среда может попросить перенести файл в рабочий каталог и изменить настройки подключения: соглашаться не стоит - мы не предатели. Выбираем нашу таблицу tbBooks и подтверждаем наше подключение.
Если сейчас запустить проект, то можно даже изменять ячейки нашей таблицы. Однако, теперь мы имеем сразу две проблемы: во-первых, в столбце id ввод не чисел выбивает страшную и непонятную ошибку, а во-вторых, изменения не сохраняются. Первая проблема решается просто:
Таким образом, в этой статье мы научились создавать базы данных, подключения к ним, таблицы в них, а также редактировать с помощью встроенного интерфейса.
Продолжение следует.
Что такое MS SQL Server?
Система управления реляционными базами данных (РСУБД), разработанная корпорацией Microsoft. Основной используемый язык запросов - Transact-SQL, создан совместно Microsoft и Sybase. Transact-SQL является реализацией стандарта ANSI/ISO по структурированному языку запросов с расширениями. Используется для работы с базами данных размером от персональных до крупных баз данных масштаба предприятия, конкурирует с другими СУБД в этом сегменте рынка.
Как подключиться к Базе Данных MS SQL Server?
Для того, чтобы осуществить подключение к базе данных MS SQL в WPF приложении, нужно создать базу данных (БД) и таблицы. Для начала стоит открыть приложение Microsoft SQL Server Management Studio 2017 или более раннюю версию, и произвести соединение с SQL сервером.
Далее правой кнопкой мыши (ПКМ) нужно щёлкнуть по «Базы данных» и выбрать пункт «Создать базу данных».
Указать название базы данных — TEST и нажать «ОК». База данных создана, теперь следует добавить таблицу. Для этого нужно открыть иерархию в «Обозреватель объектов», и на пункте «Таблицы» нажать ПКМ, выбрав «Создать» - «Таблица».
Далее следует ввести название полей и тип данных как указано на рисунке 4 и нажать комбинацию клавиш Ctrl+S или иконку сохранения в панели инструментов.
Добавляем запись щёлкая в нужные ячейки таблицы ЛКМ:
Теперь нужно перейти к приложению WPF и у главной формы (MainWindow.xaml.cs) прописать следующую функцию:
Важно отметить что весь текст у будет отмечен красным а при подключении будут возникать ошибки. Вся проблема в том, что нужно добавить несколько библиотек, которые позволяют работать с базой данных, для этого, нужно нажать ПКМ по подчёркнутому красной линией элементу и выбрать пункт «Быстрые действия и рефакторинг. », после из предложенных действий выбрать первый вариант который добавляет библиотеку.
Так же следует сделать и с SqlConnection, добавляя библиотеку System.Data.SqlClient.
В итоге должно появиться две библиотеки:
- using System.Data;
- using System.Data.SqlClient;
Разбор строки подключения к базе данных:
- server – здесь указывается имя сервера, которое было представлено на рисунке 1. (В моём случае, это DESKTOP-NBH5JF2);
- DataBase — название базы данных к которой происходит подключение;
- Trusted_Connection – безопасное подключение, используется только в тех случаях если сервер установлен локально и при подключении происходит проверка подлинности Windows;
Кроме трёх стандартных свойств подключения, так же могут понадобиться такие атрибуты как User и PWD, если сервер будет на удалённой машине. В таком случае строка подключения будет выглядеть следующим образом:
где вместо звёздочек используется ваш логин и пароль, а вместо IP – IP сервера.
После того как ошибки исчезли и приложение запускается, стоит научиться пользоваться данной функцией. Для этого после инициализации компонентов нужно прописать код:
Для запуска примеров будет использоваться сущностная модель базы данных AutoShop. При создании запросов к базе данных будет использоваться LINQ to Entities.
Создание проекта и базы данных AutoShop
Создайте новый проект WPF под названием DataBinding.
Откройте обозреватель серверов, выбрав команду в меню Вид --> Обозреватель серверов (View --> Server Explorer). Щелкните правой кнопкой мыши Подключения данных (Data Connections) и выберите пункт Создать новую базу данных (Create New SQL Server Database). В открывшемся диалоговом окне подключитесь к SQL Server, установленному на вашей локальной машине (с именем (local)), и укажите в поле имени базы данных AutoShop:
Сейчас база данных AutoShop совершенно пуста и не содержит никаких объектов (таблиц, хранимых процедур и т.п.). Для добавления новой таблицы щелкните правой кнопкой мыши на узле Tables (Таблицы) и выберите в контекстном меню пункт Add New Table:
Далее создайте таблицу CarTable, используя следующий SQL-код:
Далее необходимо будет сгенерировать сущностную модель базы данных AutoShop.
Щелкните на кнопке Add (Добавить), после чего запустится мастер создания сущностной модели данных (Entity Data Model Wizard):
Сущностную модель данных можно создать с нуля или же сгенерировать ее на основе имеющейся базы данных. Здесь необходимо сгенерировать EDM из базы данных AutoShop, поэтому выберите значок Generate from database (Создать из базы данных) и щелкните на кнопке Next (Далее) для перехода на экран подключения к данным:
Этот экран используется для выбора базы данных, на основе которой будет сгенерирована EDM-модель. На рисунке показано, что выбрана существующая база данных AutoShop, которая ранее была подключена к SQL Server 2012.
Содержимое окна может отличаться в зависимости от местоположения базы данных. Выберите нужное соединение и щелкните на кнопке Next для перехода к следующему экрану мастера, в котором выберите таблицы. Щелкните на кнопке Finish (Готово) для закрытия окна мастера и генерации модели.
Теперь нужно заполнить базу данных AutoShop, для чего будут применяться простейшие запросы LINQ to Entities. Откройте файл MainWindow.cs в вашем проекте и измените код класса MainWindow на следующий:
Внимание скомпилируйте этот пример только 1 раз, а затем удалите коллекцию lct, как и сам метод insertToDataBase. Структура базы данных CarTable должна выглядеть теперь:
Добавьте в проект папку images, в которую добавьте рисунки из следующего архива - DataBindingImages.rar. В Visual Studio укажите действие при построении (Build Action) для этих картинок в Content, а так же опцию Copy Always для копирования в выходной каталог. Они будут использоваться для демонстрации форматированного вывода привязки данных.
Файл XmlDataProviderFile.xml
Для демонстрации использования поставщика данных XmlDataProvider, будет использоваться этот файл, который содержит данные из базы данных в виде XML-документа. Загрузить его можно по следующей ссылке - XmlDataProviderFile.xml.
Метод GetAutoById
Метод GetAutoById будет использоваться для получения объекта CarTable из базы данных по его ID. Добавьте его в класс MainWindow:
1. Создание базы данных
В качестве СУБД выберем программу Microsoft Access. Но вы можете использовать и другую базу данных.
Создаем базу данных в Microsoft Access и называем её «test». В этой базе данных создаем таблицу «contacts»:
Заполните базу данных данными:
Базу данных вы можете и другую создать и данные в ней можете другие добавить т.к. это не принципиально, но мы будем работать с данной таблицей.
2. Создание проекта
В Visual Studio создаём проект:
Открываем список «Выберите источник данных» и нажимаем на ссылку «Добавить источник данных проекта»:
Откроется «Мастер настройки источника данных». В качестве источника выбираем «База данных» и идем далее:
В следующем окне идем далее:
В окне «Выбор подключения к базе данных» нажимаем на «Создать подключение»:
В следующем окне «Добавить подключение» выбираем в «Поставщик OLE DB» Microsoft Office 16.0 Access Database. В «Имя сервера или файла» вписываем путь к нашему файлу базы данных Access (который создали в первом пункте). Проверяем подключение и жмем «ОК»:
Update 2021: Visual Studio 2019 требует файл Access старого формата (.mdb – это старый формат баз данных Access 2002-2003):
В следующем окне идем далее:
Выйдет окно для переноса файла базы данных в Ваш проект нажимаем «Да»:
В следующем окне ничего не меняем и идем далее:
В следующем окне выбираем нашу таблицу «contacts» и жмем «Готово»:
После всех манипуляций наша форма должна быть примерно такой:
Если запустить наш проект, то можно увидать данные из нашей базы данных:
Поменяйте ширину всех столбцов на «150» чтобы столбцы вместились во все окно:
Вот так без единой строчки кода мы вывели данные из нашей таблицы на нужную нам форму. Переходим к 3 пункту.
3. Сохранение данных
Базу данных мы видим, но редактировать её невозможно и именно поэтому нам нужна кнопка «Сохранить». Добавляем на форму кнопку и в свойствах меняем имя на «SaveButton». После добавления кнопки нажимаем на нее два раза и пишем код:
После добавления кода запустите свое приложение и попробуйте изменить любую запись и сохранить.
4. Изменение заголовков столбцов таблицы
Изменим текст столбцов и скроем столбец «img»:
Полезные свойства для изменения столбцов:
- HeaderText – задает название столбца.
- Visible – скрывает заголовок или наоборот.
- Width – ширина столбца.
- Resizable – можно ли изменять ширину столбца.
После того как скроете заголовок «img» измените ширину всех остальных заголовков:
5. Защита от случайного удаления
Чтобы пользователь случайно не удалил запись в нашей базе данных нужно сделать так чтобы перед удалением приложение спрашивало об удалении записи.
Для этого перейдем к компоненту DataGridView, откроем список событий и установим обработчик для события UserDeletingRow. Нажмите два раза на пустую строчку возле события и перейдете к коду. Вписываем код:
После этого проверим работоспособность данного кода. Запустим приложение и попробуем удалить запись. Должно быть вот так:
6. Добавление данных
Добавляем новую форму в проект и называем ее «AddForm»:
Изменяем заголовок формы и добавляем на форму компоненты:
- 1 groupBox c текстом «Добавление записи»;
- 4 TextBox и меняем свойство «Name» на (tbName, tbPhone, tbMail, tbPhoto);
- 4 label и меняем текст на (Имя, Телефон, E-mail, Фото);
- 1 Button и меняем свойство «Name» на «AddBtn» (Добавить);
- 1 Button и меняем свойство «Name» на «CloseBtn» (Закрыть).
Переходим на главную форму и добавляем кнопку «Добавить» для добавления новой записи. Дважды щелкаем на нее и пишем код для вызова нашей новой формы:
Проверьте работоспособность приложения:
Возвращаемся на форму «Добавления записи». Пишем обработчик событий для кнопки «CloseBtn»:
Чтобы обработчик событий на кнопке «AddBtn» работал как надо нужно выполнить несколько действий. Зайти в «Form1.Designer.cs» и изменить модификаторы доступа на «public» нижеуказанных файлов:
- System.Windows.Forms.DataGridView dataGridView1;
- testDataSet testDataSet;
- System.Windows.Forms.BindingSource contactsBindingSource;
- testDataSetTableAdapters.contactsTableAdapter contactsTableAdapter;
Это нужно для того чтобы наша база данных была доступна для разных с ней манипуляций во всех создаваемых нами формах. Обработчик событий для кнопки «AddBtn»:
Проверьте работу приложения. Добавьте несколько новых записей через новую форму добавления записей.
7. Поиск данных
Реализуем самый простой поиск. Данный поиск используется в небольших приложениях. Создаем новую форму с именем «SearchForm» и добавляем на форму компоненты:
- 1 GroupBox (Поиск);
- 1 label;
- 2 button (Найти и Закрыть);
- 1 TextBox и меняем в свойствах «Name» на «tbStr».
Переходим на главную форму и добавляем кнопку «Найти» для поиска записей. Дважды щелкаем на нее и пишем код для вызова нашей новой формы:
Проверяем работоспособность приложения:
Возвращаемся на форму «Поиска». Пишем обработчик событий для кнопки «Закрыть»:
Пишем обработчик событий для кнопки «Найти»:
На главную форму добавляем кнопку «Выход» и пишем для нее код:
Итоговая форма приложения:
Читайте также: