создание приложения для работы с базой данных
Создание простого приложения для работы с данными с помощью ADO.NET
В этой статье демонстрируется простой способ быстрого получения данных из базы данных. Если приложению необходимо изменить данные с помощью нетривиальных способов и обновить базу данных, следует рассмотреть возможность использования Entity Framework и привязки данных для автоматической синхронизации элементов управления пользовательского интерфейса с изменениями в базовых данных.
С целью упрощения код не включает обработку исключений для выполнения в рабочей среде.
Предварительные требования
Для создания приложения вам потребуются следующие компоненты.
SQL Server Express LocalDB. если у вас нет SQL Server Express LocalDB, его можно установить на странице загрузки SQL Server Express.
Настройка образца базы данных
Создайте образец базы данных, выполнив следующие действия.
щелкните правой кнопкой мыши подключения к данным и выберите команду создать новую базу данных SQL Server.
В текстовом поле имя сервера введите (LocalDB) \mssqllocaldb.
В текстовом поле имя новой базы данных введите Sales, а затем нажмите кнопку ОК.
Пустая база данных Sales создается и добавляется в узел подключения к данным в обозреватель сервера.
Щелкните правой кнопкой мыши подключение к данным о продажах и выберите создать запрос.
Откроется окно редактора запросов.
По истечении короткого времени выполнение запроса завершается и создаются объекты базы данных. База данных содержит две таблицы: Customer и Orders. Эти таблицы изначально не содержат данных, но их можно добавить при запуске создаваемого приложения. База данных также содержит четыре простые хранимые процедуры.
Создание форм и добавление элементов управления
Создайте проект для приложения Windows Forms и назовите его SimpleDataApp.
Visual Studio создает проект и несколько файлов, включая пустую форму Windows Forms с именем Form1.
Добавьте две формы Windows Forms в проект, чтобы он включал три формы, и назначьте им следующие имена:
Навигация
NewCustomer
FillOrCancel
Для каждой формы добавьте текстовые поля, кнопки и другие элементы управления, которые отображаются на рисунках ниже. Для каждого элемента управления задайте свойства, указанные в таблицах.
Элементы управления «группа» и «надпись» обеспечивают большую ясность, но не используются в коде.
Форма навигации
Элементы управления формы навигации | Элемент Property |
---|---|
Кнопка | Name = btnGoToAdd |
Кнопка | Name = btnGoToFillOrCancel |
Кнопка | Name = btnExit |
Форма NewCustomer
Элементы управления формы NewCustomer | Элемент Property |
---|---|
TextBox | Name = txtCustomerName |
TextBox | Name = txtCustomerID Readonly = True |
Кнопка | Name = btnCreateAccount |
NumericUpDown | DecimalPlaces = 0 Name = numOrderAmount |
DateTimePicker | Format = Short Name = dtpOrderDate |
Кнопка | Name = btnPlaceOrder |
Кнопка | Name = btnAddAnotherAccount |
Кнопка | Name = btnAddFinish |
Форма FillOrCancel
Элементы управления формы FillOrCancel | Элемент Property |
---|---|
TextBox | Name = txtOrderID |
Кнопка | Name = btnFindByOrderID |
DateTimePicker | Format = Short Name = dtpFillDate |
DataGridView | Name = dgvCustomerOrders RowHeadersVisible = False |
Кнопка | Name = btnCancelOrder |
Кнопка | Name = btnFillOrder |
Кнопка | Name = btnFinishUpdates |
Сохранение строки подключения
Когда приложение пытается открыть подключение к базе данных, оно должно иметь доступ к строке подключения. Чтобы не вводить строку вручную в каждой форме, сохраните строку в файле App.config в проекте и создайте метод, возвращающий строку при вызове метода из любой формы в приложении.
В списке тип выберите (строка подключения).
В списке область выберите приложение.
В столбце значение введите строку подключения (без кавычек), а затем сохраните изменения.
В реальных приложениях строку подключения следует хранить безопасно, как описано в разделе строки подключения и файлы конфигурации.
Написание кода для форм
Этот раздел содержит краткие обзоры того, что делает каждая форма. Он также предоставляет код, определяющий базовую логику при нажатии кнопки на форме.
Форма навигации
Форма навигации открывается при запуске приложения. Кнопка Добавить учетную запись открывает форму NewCustomer. Кнопка Выполнение или отмена заказов открывает форму FillOrCancel. Кнопка Выход закрывает приложение.
Преобразование формы навигации в начальную форму
При использовании C# в обозревателе решений откройте файл Program.cs и измените строку Application.Run на следующую: Application.Run(new Navigation());
Создание автоматически создаваемых обработчиков событий
Дважды щелкните три кнопки в форме навигации, чтобы создать пустые методы обработчика событий. При двойном щелчке кнопки также добавляется автоматически созданный код в файл кода конструктора, который позволяет нажать кнопку для вызова события.
Добавление кода для логики формы навигации
На странице кода для формы навигации заполните основные тексты методов для трех обработчиков событий нажатия кнопки, как показано в следующем коде.
Форма NewCustomer
Создание автоматически создаваемых обработчиков событий
Создайте пустой обработчик событий щелчка для каждой кнопки в форме NewCustomer, дважды щелкнув каждую из четырех кнопок. При двойном щелчке кнопки также добавляется автоматически созданный код в файл кода конструктора, который позволяет нажать кнопку для вызова события.
Добавление кода для логики формы NewCustomer
Чтобы завершить логику формы NewCustomer, выполните следующие действия.
Перенесите System.Data.SqlClient пространство имен в область, чтобы не указывать полные имена его членов.
Добавьте в класс некоторые переменные и вспомогательные методы, как показано в следующем коде.
Заполните основные тексты методов для четырех обработчиков событий нажатия кнопки, как показано в следующем коде.
Форма FillOrCancel
Создание автоматически создаваемых обработчиков событий
Создайте пустые обработчики событий щелчка для четырех кнопок в форме Филлорканцел, дважды щелкнув кнопки. При двойном щелчке кнопки также добавляется автоматически созданный код в файл кода конструктора, который позволяет нажать кнопку для вызова события.
Добавление кода для логики формы Филлорканцел
Чтобы завершить логику формы Филлорканцел, выполните следующие действия.
Перенесите следующие два пространства имен в область, чтобы не указывать полные имена их членов.
Добавьте в класс переменную и вспомогательный метод, как показано в следующем коде.
Заполните основные тексты методов для четырех обработчиков событий нажатия кнопки, как показано в следующем коде.
Тестирование приложения
Нажмите клавишу F5 для сборки и тестирования приложения после написания кода для каждого обработчика события нажатия кнопки и общего кода программы.
Как я создаю базу данных для своих приложений
Если в нашем приложении больше 5 таблиц, то уже было бы не плохо использовать какой-нибудь инструмент для визуального проектирования архитектуры БД. Поскольку для меня это хобби, то и использую я абсолютно бесплатный инструмент под названием Oracle SQL Developer Data Modeler (скачать его можно тут).
Данная программа позволяет визуально рисовать таблицы, и строить взаимосвязи с ними. Многие ошибки проектирования архитектуры БД можно избежать при таком подходе проектирования (это я уже вам говорю как профессиональный программист БД). Выглядит это примерно так:
Спроектировав саму архитектуру, приступаем к более нудной части, заключающийся в созданий sql кода для создания таблиц. Для помощи в этом вопросе, я уже использую инструмент под названием SQLiteStudio (его в свою очередь можно скачать тут тут).
Данный инструмент является аналогом таких известных продуктов как SQL Naviagator, Toad etc. Но как следует из названия, заточен он под работу с SQLite. Он позволяет визуально создать БД и получить DDL код создаваемых таблиц. Кстати, он также позволяет создавать представления (View), которые вы тоже при желании можете использовать в своем приложении. Не знаю насколько правильный подход использования представлений в программах для Android, но в одном из своих приложений я использовал их.
Собственно говоря я больше не каких сторонних инструментов не использую, и дальше начинается магия с Android Studio. Как я уже писал выше, если начать внедрять SQL код в Java код, то на выходе мы получим плохочитаемый, а значит и плохо расширяемый код. Поэтому я выношу все SQL инструкции во внешние файлы, которые у меня находятся в директории assets. В Android Studio выглядит это примерно так:
Теперь давайте посмотрим на код внутри моего DBHelper который я использую в своих проектах. Сначала переменные класса и конструктор (тут без каких либо неожиданностей):
Теперь метод onCreate и тут становится уже интереснее:
Логически он разделен на два цикла, в первом цикле я получаю список SQL — инструкций для создания БД и затем выполняю их, во втором цикле я уже заполняю созданные ранее таблицы начальными данными. И так, шаг первый:
Тут все достаточно просто, мы просто читаем содержимое файлов, и конкатенируем содержимое каждого файла в элемент массива. Обратите внимание, что я произвожу сортировку списка файлов, так как таблицы могут иметь внешние ключи, а значит таблицы должны создаваться в определенном порядке. Я использую нумерацию в название файлов, и с помощью нею и произвожу сортировку.
С заполнением таблиц все веселей. Таблицы у меня заполняются не только жестко заданными значениями, но также значениями из ресурсов и UUID ключами (я надеюсь когда-нибудь прийти к сетевой версии своей программы, что бы мои пользователи могли работать с общими данными). Сама структура файлов с начальными данными выглядит так:
Несмотря на то, что файлы у меня имеют расширение sql, внутри не sql код а вот такая штука:
prioritys
pri_id:UUID:UUID
pri_object:string:object_task
pri_name:string:normal
pri_color:color:colorGreen
pri_default:int:1
prioritys
pri_id:UUID:UUID
pri_object:string:object_task
pri_name:string:hold
pri_color:color:colorBlue
pri_default:int:0
prioritys
pri_id:UUID:UUID
pri_object:string:object_task
pri_name:string:important
pri_color:color:colorRed
pri_default:int:0
prioritys
pri_id:UUID:UUID
pri_object:string:object_project
pri_name:string:normal
pri_color:color:colorGreen
pri_default:int:1
prioritys
pri_id:UUID:UUID
pri_object:string:object_project
pri_name:string:hold
pri_color:color:colorBlue
pri_default:int:0
prioritys
pri_id:UUID:UUID
pri_object:string:object_project
pri_name:string:important
pri_color:color:colorRed
pri_default:int:0
Структура файла такая: я выполняю вызов функции split(«:») применительно к строчке и если получаю что ее размер равен 1 то значит это название таблицы, куда надо записать данные. Иначе это сами данные. Первое поле это название поля в таблице. Второе поле тип, по которому я определяю что мне надо в это самое поле записать. Если это UUID — это значит мне надо сгенерировать уникальное значение UUID. Если string значит мне надо из ресурсов вытащить строковое значение. Если color, то опять-таки, из ресурсов надо вытащить код цвета. Если int или text, то я просто преобразую данное значение в int или String без каких либо телодвижений. Сам код выглядит вот так:
Apache NetBeans 12.5
Автор: Трой Джуниперо (Troy Giunipero)
В этом документе описана процедура создания простого веб-приложения, которое подключается к серверу базы данных MySQL. Здесь также рассмотрены основные идеи и технологии веб-разработки, такие какJavaServer Pages (JSP), библиотека стандартных тегов JavaServer Pages (JSTL), интерфейс API связи с базами данных Java (JDBC) и двухуровневая архитектура между клиентом и сервером. Этот учебный курс разработан для начинающих разработчиков, обладающих базовыми знаниями в области веб-разработок и желающих применить свои знания к базе данных MySQL.
MySQL является популярной системой управления базами данных с открытым кодом, которая обычно используется в веб-приложениях благодаря своей скорости, гибкости и надежности. MySQL использует SQL (язык структурированных запросов) для доступа к данным в базе данных и их обработки.
Для работы с этим учебным курсом требуется следующее программное обеспечение и ресурсы.
7.2, 7.3, 7.4, 8.0, пакет Java EE
Драйвер JDBC MySQL Connector/J
GlassFish Server Open Source Edition 3.1.2.2
Примечания:
Комплект загрузки Java среды IDE NetBeans позволяет пользователям установить сервер GlassFish. Для работы с данным учебным курсом требуется сервер GlassFish.
Если необходимо сравнить проект с работающим решением, можно загрузить демонстрационное приложение.
Планирование структуры
С помощью двухуровневой архитектуры, в которой клиент взаимодействует с сервером напрямую, можно создать простое веб-приложение. В рамках данного учебного курса веб-приложение Java взаимодействует напрямую с базой данных MySQL с использованием API связи с базами данных Java. В сущности, именно драйвер MySQL Connector/J JDBC обеспечивает обмен данными между кодом Java, распознанным сервером приложения (GlassFish), и любым содержимым на SQL, языке, понятном для сервера базы данных (MySQL).
Для реализации описанного выше сценария необходимо разработать простое приложение для организации IFPWAFCAD Международной ассоциации по консультированию и развитию для бывших профессиональных борцов.
index.jsp
response.jsp
Создание нового проекта
Сначала необходимо создать новый веб-проект в среде IDE:
Выберите «Файл > Новый проект» (CTRL+SHIFT+N; ⌘+SHIFT+N в Mac ОС) в главном меню. Выберите категорию «Java Web», а затем выберите «Веб-приложение». Нажмите кнопку «Далее».
С помощью этого мастера можно создать пустое веб-приложение в стандартном проекте IDE. В стандартном проекте для компиляции, развертывания и выполнения приложения используется созданный в среде IDE сценарий сборки проекта Ant.
В поле «Имя проекта» введите «IFPWAFCAD». Также укажите местоположение проекта на компьютере. По умолчанию проекты в среде IDE помещаются в папку NetBeansProjects в домашнем каталоге. Нажмите кнопку «Далее».
В панели «Сервер и параметры» укажите сервер GlassFish в качестве сервера, на котором будет запускаться приложение.
*Примечание.*Сервер GlassFish отображается в раскрывающемся списке ‘Сервер’, если установлена версия Java IDE NetBeans. Поскольку сервер GlassFish включен в загрузку, он регистрируется в среде IDE автоматически. Для использования в проекте другого сервера нажмите кнопку «Добавить» рядом с полем с раскрывающимся списком «Сервер» и зарегистрируйте другой сервер в среде IDE. Работа с другими серверами, помимо GlassFish в рамках данного учебного курса не рассматривается.
В поле «Версия Java EE» выберите Java EE 5.
Для веб-проектов Java EE 6 и Java EE 7 использование дескриптора развертывания web.xml не требуется. Шаблон проекта NetBeans не содержит файл web.xml в проектах Java EE 6 и Java EE 7. Однако в данном учебном курсе рассматривается процесс объявления источника данных в дескрипторе развертывания. Функции, характерные только для Java EE 6 или Java EE 7, не требуются, поэтому в качестве версии проекта можно указать Java EE 5.
Нажмите кнопку «Завершить». Создается шаблон проекта для всего приложения и в редакторе открывается пустая страница JSP ( index.jsp ). Файл `index.jsp`служит в приложении страницей приветствия.
Подготовка веб-интерфейса
Начните с подготовки страницы приветствия ( index.jsp ) и страницы ответов ( response.jsp ). На странице приветствия реализована форма HTML для сбора пользовательских данных. На обеих страницах для просмотра структурированных данных используется таблица HTML. В этом разделе также рассматривается процесс создания таблицы стилей, которая расширяет внешний вид обеих страниц.
Настройка страницы приветствия
Убедитесь, что страница index.jsp открыта в редакторе. Если файл еще не открыт, дважды щелкните index.jsp под узлом «Веб-страницы» проекта IFPWAFCAD в окне «Проекты».
Измените текст между тегами
на Добро пожаловать в IFPWAFCAD, Международную ассоциацию по консультированию и развитию для бывших профессиональных борцов!
Откройте палитру среды IDE, выбрав в главном меню «Окно» > «Палитра» (CTRL+SHIFT+8; ⌘+SHIFT+8 в ОС Mac). Наведите курсор на значок «Таблица» в категории «HTML» и обратите внимание на то, что отображается фрагмент кода для элемента по умолчанию.
Установите курсор сразу же после тегов
. (Именно в этом месте будет внедрена новая таблица HTML). Далее в окне «Палитра» дважды щелкните значок «Таблица».
В появившемся диалоговом окне «Вставка таблицы» укажите следующие значения и затем нажмите кнопку «ОК»:
Рядов: 2
Столбцов: 1
Размер границы: 0 Код таблицы HTML создан и добавлен на страницу.
Добавьте следующее содержимое в заголовок таблицы и ячейку первой строки таблицы (новое содержимое выделено полужирным шрифтом):
Нажмите клавишу Enter, чтобы добавить пустую строку после добавленного содержимого, затем дважды щелкните «Список» в палитре, чтобы открыть диалоговое окно «Вставить список».
В диалоговом окне «Вставить список» ведите subject_id для текстового поля «Имя» и нажмите «OK». Обратите внимание на то, что к форме добавляется фрагмент кода для раскрывающегося списка.
Количество параметров для раскрывающегося списка не имеет значения. Позже в этом учебном курсе будет показано добавление тегов JSTL для динамического создания на основе данных, полученных из таблицы базы данных «Subject».
Для форматирования кода щелкните правой кнопкой мыши в редакторе и выберите ‘Формат’ (Alt-Shift-F; Ctrl-Shift-F в Mac). Код автоматически форматируется и должен теперь выглядеть следующим образом:
Для просмотра этой страницы в браузере щелкните правой кнопкой мыши в редакторе и выберите ‘Запустить файл’ (Shift-F6; Fn-Shift-F6 в Mac). После этого страница JSP будет автоматически скомпилирована и развернута на сервере. Открывается браузер по умолчанию, и в нем выводится страница из местоположения, где она развернута.
Создание страницы ответов
Для подготовки интерфейса для страницы response.jsp сначала необходимо создать файл в проекте. Обратите внимание на то, что большая часть содержимого, отображаемого на странице, создана динамически с помощью технологии JSP. Поэтому в следующих шагах будет необходимо добавить метки-заполнители, которые позже будут заменены кодом JSP.
Щелкните правой кнопкой мыши узел проекта «IFPWAFCAD» в окне «Проекты» и выберите «Создать > JSP». Откроется диалоговое окно «Новый файл JSP».
Hello World!
Для просмотра этой страницы в браузере щелкните правой кнопкой мыши в редакторе и выберите ‘Запустить файл’ (Shift-F6; Fn-Shift-F6 в Mac). Выполняется компиляция и развертывание страницы на сервере GlassFish с последующим открытием в браузере по умолчанию.
Создание таблицы стилей
Откройте мастер создания файлов, нажав кнопку ‘Создать файл’ ( ) на главной панели инструментов IDE. Выберите категорию «Web», а затем выберите «Каскадная таблица стилей» и нажмите кнопку «Далее».
В редакторе добавьте следующее содержимое к файлу style.css :
Для быстрого перехода между открытыми в редакторе файлами нажмите CTRL+TAB, а затем выберите требуемый файл.
Подготовка средств обмена данными между приложениями и базой данных
Наиболее эффективным способом реализации соединения между сервером и базой данных является настройка пула подключений базы данных. Создание нового подключения для каждого запроса клиента может занимать много времени, особенно для приложений, постоянно получающих огромное количество запросов. Во избежание этого создается и поддерживается множество подключений, организованных в виде пула подключений. Входящие запросы, требующие доступа к данным приложения, используют уже созданное подключение из пула. Аналогичным образом, когда запрос завершен, подключение не закрывается, а возвращается в пул.
*Примечание. *Для дальнейшей работы необходимо убедиться в том, что база данных MySQL с именем MyNewDatabase настроена корректно и содержит данные примера из ifpwafcad.sql. Этот файл SQL создает две таблицы Subject и Counselor и затем заполняет их данными для примера. Если это не было выполнено ранее, или с этим заданием возникли сложности, то прежде чем продолжить учебный курс, обратитесь к разделу Подключение к базе данных MySQL.
Помимо этого для создания источника данных и работы с сервером GlassFish в рамках данного учебного курса необходимо защитить базу данных паролем. При использовании учетной записи MySQL root по умолчанию с пустым паролем с помощью командной строки можно установить другой пароль.
Дополнительные сведения приведены в официальном справочном руководстве по работе с MySQL: Защита исходных учетных записей MySQL.
Руководство: создание приложения базы данных клиентов
В этом руководстве создается простое приложение для управления списком клиентов. Это позволяет выбрать основные понятия для корпоративных приложений в UWP. Вы узнаете, как:
Отправной точкой для этого руководства является одностраничное приложение с минимальным пользовательским интерфейсом и функциональностью на основе упрощенной версии примера приложения для работы с базой данных Customer Orders. Он написан на C# и XAML, и мы ожидаем, что у вас есть базовое знакомство с обоими языками.
Предварительные требования
После клонирования или скачивания репозитория можно изменить проект, открыв кустомердатабасетуториал. sln с Visual Studio.
Ознакомьтесь с примером базы данных «полный заказ для клиентов «, чтобы увидеть приложение, на котором основано это руководство.
Часть 1. интересующий вас код
Если приложение запускается сразу после открытия, вы увидите несколько кнопок в верхней части пустого экрана. Хотя это невидимо для вас, приложение уже содержит локальную базу данных SQLite, подготовленную с помощью нескольких тестовых клиентов. Здесь вы начинаете с реализации элемента управления пользовательского интерфейса для вывода этих клиентов, а затем переходите к добавлению операций в базе данных. Прежде чем начать, здесь вы будете работать.
Представления
Кустомерлистпаже. XAML — это представление приложения, которое определяет пользовательский интерфейс для отдельной страницы в этом учебнике. Каждый раз, когда необходимо добавить или изменить визуальный элемент в пользовательском интерфейсе, это можно сделать в этом файле. В этом руководстве описано, как добавить следующие элементы:
Модели представлений
Виевмоделс\кустомерлистпажевиевмодел.КС — это место, где находится основная логика приложения. Каждое действие пользователя, выполненное в представлении, будет передано в этот файл для обработки. В этом руководстве вы добавите новый код и реализуем следующие методы:
CustomerViewModel — это программа-оболочка для информации клиента, которая отслеживает, был ли он недавно изменен. В этот класс не нужно добавлять ничего, но в него будет ссылаться другой код, который вы добавите в другое место.
Дополнительные сведения о создании образца см. в обзоре структуры приложения.
Часть 2. Добавление элемента управления DataGrid
Прежде чем приступить к работе с данными клиента, необходимо добавить элемент управления пользовательского интерфейса для вывода этих клиентов. Для этого мы будем использовать готовый элемент управления раддатагрид стороннего производителя. пакет Telerik. UI. for. UniversalWindowsPlatform NuGet уже включен в этот проект. Давайте добавим сетку в наш проект.
Под панелью команд в главной релативепанел представления добавьте элемент управления раддатагрид с некоторыми базовыми параметрами конфигурации:
Вы добавили сетку данных, но для ее вывода нужны данные. Добавьте в него следующие строки кода:
Теперь, когда вы определили источник данных для вывода, раддатагрид будет выполнять большую часть логики пользовательского интерфейса. Однако при запуске проекта данные на экране по-прежнему не отображаются. Это обусловлено тем, что ViewModel еще не загружает его.
Часть 3. чтение клиентов
В виевмоделс\кустомерлистпажевиевмодел.КС Обновите метод жеткустомерлистасинк следующим кодом:
Запустите приложение. Теперь вы увидите сетку данных, в которой отображается список клиентов.
Часть 4. изменение клиентов
Можно изменить записи в сетке данных, дважды щелкнув их, но необходимо убедиться, что любые изменения, вносимые в пользовательском интерфейсе, также будут внесены в коллекцию клиентов в коде программной части. Это означает, что необходимо реализовать двустороннюю привязку данных. Если вы хотите получить дополнительные сведения об этом, ознакомьтесь с нашим введением в привязку данных.
Сначала объявите, что виевмоделс\кустомерлистпажевиевмодел.КС реализует интерфейс INotifyPropertyChanged :
Затем в основном тексте класса добавьте следующее событие и метод:
Обновите метод задания для селектедкустомер с помощью этого вызова функции:
В виевс\кустомерлистпаже.ксамл добавьте свойство селектедкустомер в сетку данных.
Это связывает выбор пользователя в сетке данных с соответствующим объектом Customer в коде программной части. Режим привязки TwoWay позволяет отражать изменения, внесенные в пользовательском интерфейсе, в этот объект.
Запустите приложение. Теперь вы можете видеть клиентов, отображаемых в сетке, и вносить изменения в базовые данные с помощью пользовательского интерфейса.
Часть 5. обновление клиентов
Теперь, когда вы можете просматривать и изменять клиентов, необходимо иметь возможность отправлять изменения в базу данных и получать обновления, внесенные другими пользователями.
В этом коде используется свойство виевмоделс\кустомервиевмодел.КС , которое автоматически обновляется при каждом изменении клиента. Это позволяет избежать ненужных вызовов и отправлять изменения только от обновленных клиентов в базу данных.
Часть 6. Создание нового клиента
Добавление нового клиента представляет проблему, так как клиент будет отображаться в виде пустой строки, если добавить его в пользовательский интерфейс перед указанием значений для его свойств. Это не проблема, но здесь мы упростили Задание начальных значений клиента. В этом учебнике мы добавим простую свертываемая панель, но если у вас есть дополнительные сведения для добавления, можно создать отдельную страницу для этой цели.
Обновление кода программной части
Добавьте новое закрытое поле и общедоступное свойство в виевмоделс\кустомерлистпажевиевмодел.КС. Он будет использоваться для управления отображением панели.
Добавьте в ViewModel новое открытое свойство, обратное значение аддингневкустомер. Он будет использоваться для отключения обычных кнопок панели команд при отображении панели.
Теперь вам потребуется способ отобразить свертываемая панель и создать клиента для редактирования в ней.
Добавьте новое закрытое свойство фиенд и public в ViewModel для хранения только что созданного клиента.
Добавьте следующую строку кода в качестве конечной строки в методе задания для аддингневкустомер:
Обновление пользовательского интерфейса
Вернитесь к виевс\кустомерлистпаже.ксамл и добавьте StackPanel со следующими свойствами между панелью CommandBar и сеткой данных:
Атрибут x:Load гарантирует, что эта панель отображается только при добавлении нового клиента.
Внесите следующее изменение в расположение сетки данных, чтобы убедиться, что она перемещается вниз при появлении новой панели:
Добавьте простую кнопку на новую панель стека, чтобы сохранить только что созданного клиента:
Обновите панель команд, чтобы при отображении панели стека были отключены стандартные кнопки Создать, удалить и обновить.
Запустите приложение. Теперь можно создать клиента и ввести его данные на панели стека.
Часть 7. Удаление клиента
Перейдите по адресу виевмоделс\кустомерлистпажевиевмодел.КС и обновите метод делетеандупдатеасинк :
В виевс\кустомерлистпаже.ксамл обновите панель стека, чтобы добавить нового клиента, чтобы он содержал вторую кнопку:
Запустите приложение. Теперь можно удалить клиентов либо в сетке данных, либо на панели стека.
Заключение
Поздравляем! Теперь, когда все это сделано, ваше приложение будет иметь полный спектр операций локальной базы данных. Вы можете создавать, читать, обновлять и удалять клиентов в пользовательском интерфейсе, и эти изменения сохраняются в базе данных и сохраняются в разных запусках приложения.
Теперь, когда все готово, учитывайте следующее.
Если у вас возникла проблема, можно продолжить.
дальнейшие действия: Подключение к удаленной базе данных
Мы предоставили пошаговое руководство по реализации этих вызовов в локальной базе данных SQLite. Но что если вместо этого вы хотите использовать удаленную базу данных?
если вы хотите сделать это, вам потребуется собственная учетная запись Azure Active Directory (AAD) и возможность размещения собственного источника данных.
Необходимо добавить проверку подлинности, функции для управления вызовами RESTFUL, а затем создать удаленную базу данных для взаимодействия. В образце полной базы данных Customer Orders имеется код, на который можно ссылаться для каждой необходимой операции.
Параметры и конфигурация
Необходимые действия для подключения к собственной удаленной базе данных приведены в файле сведений примера. Вам понадобится выполнить следующие процедуры.
Аутентификация
Необходимо создать кнопку для запуска последовательности проверки подлинности, а также всплывающее окно или отдельную страницу для сбора сведений о пользователе. После создания этого кода необходимо предоставить код, который запрашивает сведения о пользователе и использует его для получения маркера доступа. пример базы данных Customer orders заключает Microsoft Graph вызовы в библиотеку вебаккаунтманажер для получения маркера и выполнения проверки подлинности для учетной записи AAD.
Вызовы RESTFUL
Вам не потребуется изменять код, добавленный в этом руководстве, для реализации вызовов RESTFUL. Вместо этого необходимо выполнить следующие действия.
После выполнения всех трех этапов вы сможете пройти проверку подлинности в вашей учетной записи AAD с помощью приложения. Вызовы функции RESTFUL к удаленной базе данных будут заменять локальные вызовы SQLite, но взаимодействие с пользователем должно быть одинаковым. Если вы еще амбициозные, можно добавить страницу параметров, чтобы разрешить пользователю динамически переключаться между ними.