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

Создание базы данных

Последнее обновление: 28.02.2016

Как правило, для хранения больших наборов данных используются различные базы данных. В WPF, как и в целом в .NET, мы можем работать с различными системами управления баз данных - MS SQL Server, Oracle, MySQL, MongoDB, Postgres и т.д. В данном случае рассмотрим взаимодействие приложения на WPF и базы данных MS SQL Server. Хотя общие принципы работы с другими БД не будут теми же.

Прежде всего для работы с базами данных должен быть установлен и запущен MS SQL Server. Все необходимые файлы для загрузки можно найти на офсайте по ссылке MS SQL Server 2014 Express

Итак, создадим новый проект. Пусть он будет называться DbApp. Вначале создадим базу данных, к которой мы будем подключаться. Для этого откроем специальную программу SQL Server 2014 Management Studio, которая устанавливается вместе с MS SQL Server и которая служит для управления базами данных. В левом древовидном меню найдем пункт Databases, нажмем на него правой кнопкой мыши и в появившемся контекстном меню выберем пункт New Database...:

Создание базы данных в WPF

Назовем базу данных mobiledb и нажмем на кнопку OK:

После этого в левом меню появится узел с только что созданной базой данных. Теперь добавим в нее таблицу. Правой кнопкой мыши нажмем на подузел Tables и в контекстном меню выберем пункт Tables...:

Создание таблицы в WPF

Затем нам открывается дизайнер таблицы:

Дизайнер таблицы в SQL Management Studio

В нем надо указать четыре столбца: Id, Title, Company и Price, которые будут представлять соответственно уникальный идентификатор телефона, название его модели, производителя и цену. У первого и четвертого столбца надо указать тип int (то есть целочисленный), а у столбцов Title и Company - тип nvarchar (строковый).

Кроме того, в окне свойств таблицы в поле Name надо ввести имя таблицы - Phones, а в поле Identity Column ввести Id, так как столбец Id будет идентификатором.

И в конце нам надо установить курсор на столбец Id и в панели инструментов программы нажать на золотой ключик. После этого напротив поля Id также должен появиться золотой ключик. Этот ключик будет указывать, что столбец Id будет выполнять роль первичного ключа.

После этого нажмем на сохранение и затем на клавишу F5 (обновление), и в узле нашей базы данных появится новая таблица, которая будет называться dbo.Phones:

Итак, мы создали базу данных и таблицу, и сделаем последний шаг - добавим в базу данных харнимую процедуру, которая осуществляет добавление нового объекта в базу данных. Для этого выберем в узле базы данных пункт Programmability->Stored Procedures. Нажмем на этот узел правой кнопкой мыши и в контекстном меню выберем пункт Stored Procedure...:

Хранимая процедура и WPF

В центральной части программы открывается код процедуры, который генерируется по умолчанию. Заменим этот код следующим::

CREATE PROCEDURE [dbo].[sp_InsertPhone]
    @title nvarchar(50),
	@company nvarchar(50),
    @price int,
	@Id int out
AS
    INSERT INTO Phones (Title, Company, Price)
    VALUES (@title, @company, @price)
  
    SET @Id=SCOPE_IDENTITY()
GO

Эта процедура выполняет добавление данных. После выражения CREATE PROCEDURE идет название процедуры. Процедура называется "sp_InsertPhone", и по этому названию мы ее будем вызывать в коде C#. Название процедуры может быть любое.

Процедура имеет три входных параметра: @title, @company и @price. Через эти параметры будут передаваться значения для объекта в таблице Phones. В самом теле процедуры после выражения AS идет стандартное sql-выражение INSERT, которое выполняет добавление данных. И в конце с помощью выражения SELECT возвращается результат. Выражение SCOPE_IDENTITY() возвращает id добавленной записи, который присваивается четвертому выходному параметру @Id. Поэтому на выходе из процедуры мы получим id новой записи. И завершается процедура ключевым словом GO.

Вообще мы бы могли обойтись и без хранимой процедуры. Однако при подключении из кода C# она нам упростит работу, и в дальнейшем мы посмотрим, в чем ее преимущества. И затем нажмем на кнопку Execute. После этого в базу данных добавляется хранимая процедура.

Теперь подключимся к ней из приложения на WPF.

Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850