Программа wpf с бд пример

Windows Presentation Foundation — один из компонентов ядра .NET Framework, который позволяет разработчикам создавать богатые, различные Windows приложения.

Что такое 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 сервером.

SQL - Запуск SQL Server

Далее правой кнопкой мыши (ПКМ) нужно щёлкнуть по «Базы данных» и выбрать пункт «Создать базу данных».

SQL - Настройка базы данных

Указать название базы данных — TEST и нажать «ОК». База данных создана, теперь следует добавить таблицу. Для этого нужно открыть иерархию в «Обозреватель объектов», и на пункте «Таблицы» нажать ПКМ, выбрав «Создать» — «Таблица».

SQL - Создание таблицы

Далее следует ввести название полей и тип данных как указано на рисунке 4 и нажать комбинацию клавиш Ctrl+S или иконку сохранения в панели инструментов.

SQL - Создание полей

После завершения возникнет окно, с просьбой указать имя таблицы, её следует назвать «users». После нужно обновить «Обозреватель объектов» и можно увидеть, что данная таблица появилась в иерархии: «Название сервера» — «Базы данных» — «TEST» — «Таблицы» — «dbo.users». Далее нужно нажать по таблице и выбрать пункт «изменить первые 200 строк». Откроется пустая таблица.

SQL - Добавление строк

Добавляем запись щёлкая в нужные ячейки таблицы ЛКМ:

  • login – student
  • password – asdfg123

SQL - Вставленные строки

Теперь нужно перейти к приложению WPF и у главной формы (MainWindow.xaml.cs) прописать следующую функцию:

public DataTable Select(string selectSQL) // функция подключения к базе данных и обработка запросов < DataTable dataTable = new DataTable(«dataBase»); // создаём таблицу в приложении // подключаемся к базе данных SqlConnection sqlConnection = new SqlConnection(«server=DESKTOP-NBH5JF2;Trusted_Connection=Yes;DataBase=TEST;»); sqlConnection.Open(); // открываем базу данных SqlCommand sqlCommand = sqlConnection.CreateCommand(); // создаём команду sqlCommand.CommandText = selectSQL; // присваиваем команде текст SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(sqlCommand); // создаём обработчик sqlDataAdapter.Fill(dataTable); // возращаем таблицу с результатом return dataTable; >

Важно отметить что весь текст у будет отмечен красным а при подключении будут возникать ошибки. Вся проблема в том, что нужно добавить несколько библиотек, которые позволяют работать с базой данных, для этого, нужно нажать ПКМ по подчёркнутому красной линией элементу и выбрать пункт «Быстрые действия и рефакторинг. », после из предложенных действий выбрать первый вариант который добавляет библиотеку.

Читайте также:
Как перенести питон программу на другой компьютер

SQL - Быстрые действия

SQL - Добавление библиотеки

Так же следует сделать и с SqlConnection, добавляя библиотеку System.Data.SqlClient.

В итоге должно появиться две библиотеки:

  • using System.Data;
  • using System.Data.SqlClient;

Разбор строки подключения к базе данных:

  • server – здесь указывается имя сервера, которое было представлено на рисунке 1. (В моём случае, это DESKTOP-NBH5JF2);
  • DataBase — название базы данных к которой происходит подключение;
  • Trusted_Connection – безопасное подключение, используется только в тех случаях если сервер установлен локально и при подключении происходит проверка подлинности Windows;

Кроме трёх стандартных свойств подключения, так же могут понадобиться такие атрибуты как User и PWD, если сервер будет на удалённой машине. В таком случае строка подключения будет выглядеть следующим образом:

SqlConnection sqlConnection = new SqlConnection(«server=IP;Trusted_Connection=No;DataBase=TEST;User=*****;PWD=***»);

где вместо звёздочек используется ваш логин и пароль, а вместо IP – IP сервера.

После того как ошибки исчезли и приложение запускается, стоит научиться пользоваться данной функцией. Для этого после инициализации компонентов нужно прописать код:

DataTable dt_user = Select(«SELECT * FROM [dbo].[users]»); // получаем данные из таблицы for(int i = 0; i < dt_user.Rows.Count; i ++) < // перебираем данные MessageBox.Show(dt_user.Rows[i][0] + «|» + dt_user.Rows[i][1]); // выводим данные >

Первой строкой выполняется подключение к базе данных и передаётся запрос, после чего обрабатывается ответ и возвращается обратно. Далее цикл, для перебора строк, поскольку dt_user.Rows представляет собой таблицу где есть строки и столбцы. MessageBox.Show отвечает за вывод окна в котором располагается текст.

dt_user.Rows[i][0] — 1 столбец с логином

dt_user.Rows[i][1] — 2 столбец с паролем

Запустив программу можно увидеть, что данный код работает:

SQL - Работа программы

SQL - Код программы

Таким образом можно реализовать подключение к базе данных MS SQL Server.

Автор статьи: Александр Каримов.

Источник: you-hands.ru

Отображение иерархической структуры данных в WPF с помощью привязки и шаблонов

Представление набора данных в виде иерархической структуры (любого уровня вложенности) в WPF осуществляется очень просто. Как правило, для этого используется класс System.Windows.Controls.TreeView и выглядит результат как-то так:

  • База данных, размещённая на MS SQL Server 2008
  • XML-файл.
  1. База данных MyTestDb.mdf
  2. Xml-файл XMLFile1.xml
  1. Linq2SqlProject — библиотека, содержащая в себе набор классов, являющихся объектным проецированием реляционной структуры базы данных.
  2. WpfGuiProject — графическая часть приложения (GUI), выполненная с применением технологии WPF. В этом же проекте будет размещён код, касающийся работы с XML-данными.

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

В нашем примере база данных будет состоять из двух таблиц — этого достаточно для демонстрации решения озвученной задачи:

В таблицу MySchema.Categories я добавил следующие записи:

В таблицу MySchema.Books внесены такие данные:

Дабы не усложнять пример, я не стану создавать в базе данных набор хранимых процедур, с помощью которых клиентское приложение должно было бы работать с БД (хотя в реальной работе, конечно же следует вести диалог с базой данных только через хранимые процедуры, дабы избежать возможности выполнения sql-инъекций).
Скачиваем выше указанную базу данных отсюда и подключаем её к нашей СУБД.

Читайте также:
Программа для того чтобы сделать гифку из видео

2. Создаём объектно-ориентированную проекцию базы данных

1. Создадим новое пустое решение (Solution), присвоив ему имя «TreeStructureBrowse»:

2. Из контекстного меню, полученного щелчком мышью по имени решения в Solution Explorer, выбираем пункт Add => New Project…
3. Выбираем тип проекта «Class Library» и назначаем нашему проекту имя «Linq2Sql», после чего жмём клавишу OK.
4. Из контекстного меню, полученного щелчком мышью по имени проекта, добавленного нами в п.3, выбираем пункт Add => New Item…
5. Выбираем элемент «LINQ to SQL Classes» и назначаем файлу имя «MyTestDb»:

6. Из меню «View», выбираем пункт «Server Explorer». В появившемся окне нажимаем кнопку «Connect to Database»:

7. Указываем все необходимые параметры строки подключения (в моём случае используется аутентификация Windows):

8. Жмём кнопку «Test Connection», дабы убедиться, что подключиться нам удастся, после чего нажатием кнопки ОК закрываем окно «Add Connection».
9. Теперь в окне «Server Explorer» мы увидим такую картину:

p.s. powercomp — это имя моего компьютера

10. Удерживая нажатой клавишу Shift, выбираем обе наши таблицы (Books и Categories) и перетаскиваем их мышью на вкладку MyTestDb.dbml*, в результате чего получим следующую картину:

11. Сохраняем наш проект и выполняем команду Build => Rebuild Solution.

Т.о. мы только что создали объектно ориентированную модель нашей реляционной базы, что является первым ключевым моментом (из трёх) в решении нашей задачи.

3. Создание графической части (GUI), написание конвертеров и формирование шаблонов

1. В созданное нами в предыдущем разделе решение (Solution), добавим новый проект, задав ему имя WpfGuiProject:

2. Из контекстного меню, вызванного нажатием правой кнопки мыши на имени только что добавленного в наше решение проекта, выбираем пункт «Set as StartUp Project», сделав тем самым GUI проект запускаемым по умолчанию.
3. Добавляем в проект «WpfGuiProject» ссылку на проект «Linq2Sql»:

4. Добавляем в наш проект словарь ресурсов: из контекстного меню, вызванного нажатием правой кнопки мыши по имени нашего проекта, активируем пункт Add => Resource Dictionary… и в появившемся диалоговом окне выбираем одноимённый элемент:

5. Через контекстное меню проекта добавляем в него новый файл типа «Class», назначив ему имя «MyConverters.cs».
6. Подключаем к нашему проекту сборку «System.Data.Linq».
7. В созданном в п.5 файле пишем такой код:

  1. using System;
  2. using System.Collections. Generic ;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Windows.Data;
  6. using Linq2Sql;
  7. using System.Xml.Linq;
  8. namespace WpfGuiProject
  9. //Конвертер для класса Category. Задача этого конвертера — извлечение вложенных элементов типа Category.
  10. public sealed class CategoryValueConverter : IValueConverter
  11. public object Convert ( object value , Type targetType, object parameter, System.Globalization.CultureInfo culture)
  12. if ( value is Category)
  13. Category x = (Category) value ;
  14. return (x).Categories.Where(n => n.ParrentCategoryId == x.CategoryId).OrderBy(n => n.CategoryName);
  15. >
  16. else
  17. return null ;
  18. >
  19. >
  20. public object ConvertBack( object value , Type targetType, object parameter, System.Globalization.CultureInfo culture)
  21. throw new NotImplementedException();
  22. >
  23. >
  24. //Конвертер для класса XElement. Задача этого конвертера — извлечение вложенных элементов типа XElement, инкапсулирующих
  25. //в себе разделы Category.
  26. public sealed class XmlConverter :IValueConverter
  27. public object Convert ( object value , Type targetType, object parameter, System.Globalization.CultureInfo culture)
  28. if ( value is XElement )
  29. XElement x = ( XElement ) value ;
  30. return x.Elements( «Category» );
  31. >
  32. else
  33. return null ;
  34. >
  35. >
  36. public object ConvertBack( object value , Type targetType, object parameter, System.Globalization.CultureInfo culture)
  37. throw new NotImplementedException();
  38. >
  39. >
  40. >
Читайте также:
Код класса программ для эвм

Созданные в п.7 являются вторым (из трёх) ключевым моментом для решения стоящей перед нами задачи — иерархическое визуальное представление информации, реализованное при помощи привязки к данным. В коде мы определяем логику получения нужных нам дочерних элементов, которые должны участвовать в построении иерархической модели.
8. Редактируем файл «Dictionary1.xaml»:

Xml-разметка, созданная в п.8 является третьим ключевым моментом. В данной разметке с помощью класса HierarchicalDataTemplate определены — шаблон отображения данных и конвертер, который следует использовать, для получения дочерних элементов по отношению к текущему.

Теперь начинаем формировать графическое представление нашего окна.

9. Редактируем содержимое файла «MainWindow.xaml»:

Данная разметка сформирует такое окно:

10. Добавляем в наш проект файл «XMLFile1.xml», который будет являться альтернативным источником данных:

Наполняем созданный нами файл данными, прописанными в xml-формате:

11. Вносим изменения в файл «MainWindow.xaml.cs»:

Теперь можно запускать наше приложение на исполнение и наслаждаться результатами работы… Итак жмём клавишу F5 и смотрим, что мы имеем…

А. Источником является база данных:

Б. Источником является Xml-файл:

Исходный код решения (Solution) в формате MS Visual Studio 2010 можно скачать здесь.

Источник: habr.com

#5 – Создание базы данных SQLite

#5 – Создание базы данных SQLite

Начиная с этого урока мы приступаем к работе над базой данных. В качестве СУБД мы будем использовать SQLite. За урок мы создадим базу данных, добавим в неё таблицу и подключим БД к нашему WPF проекту.

Видеоурок

Полезная ссылка:

База данных SQLite

Работа с БД SQLite относительно проста в сравнении с другими СУБД по типу MySQL, PostgreSQL, Firebase и тому подобные. Простота обеспечивается за счет того, что SQLite встраивается внутрь вашего проекта. Это значит, что для нее не требуется отдельный сервер или хостинг и она всегда будет поставляться пользователю вместе с приложением.

Подключение SQLite

Для работы с SQLite вам требуется скачать и установить специальную программу к себе на компьютер, а также внутрь проекта добавить библиотеку «System.Data.SQLite». После добавления библиотеки необходимо описать изменения в файле «App.config».

В скачанной программе создайте новую БД, добавьте в неё таблицу (или таблицы) и далее файл базы данных закиньте в папку вашего WPF проекта.

Источник: itproger.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru