Этот урок описывает работу с базой данных SQLite3 в Xamarin Forms: подключение, создание формы и добавление товаров. SQLite выбран за простоту и отсутствие необходимости в отдельном сервере – база данных встраивается в проект.
Установка SQLite
Для работы с SQLite установите библиотеку sqlite-net-pcl:
- Откройте проект.
- Запустите Управление пакетами NuGet.
- Перейдите на вкладку Обзор.
- Найдите sqlite-net-pcl.
- Установите библиотеку.
Библиотека появится в списке зависимостей проекта.
Модель данных (класс Item)
Создайте класс Item для описания таблицы базы данных (например, правой кнопкой мыши на проекте -> Добавить -> Класс). Класс должен быть объявлен как public.
Поля класса:
- ID: Уникальный идентификатор (целое число, integer). Аннотации [PrimaryKey] и [AutoIncrement] обеспечивают автоматическую генерацию и присвоение уникального значения.
- Title: Название товара (string).
- Description: Описание товара (string).
- Image: URL изображения товара (string).
- Price: Цена товара (integer).
Код класса Item:
using SQLite;
[Table("Item")]
public class Item
{
[PrimaryKey, AutoIncrement]
public int ID { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public string Image { get; set; }
public int Price { get; set; }
}
Аксессоры get; set; обязательны.
Класс для работы с базой данных (Database)
Создайте класс Database для подключения к базе данных и выполнения операций.
Класс содержит:
- Поле Connection типа SQLiteConnection (только для чтения, readonly). Объект для работы с базой данных.
- Конструктор, принимающий путь к файлу базы данных. Создает объект SQLiteConnection и вызывает CreateTable для создания таблицы Item (если она не существует).
- Метод GetItems(), возвращающий список товаров из таблицы Item.
- Метод SaveItem(), сохраняющий объект Item в базе данных и возвращающий ID новой записи.
Код класса Database:
using SQLite;
using System.Collections.Generic;
using System.IO;
public class Database
{
private readonly SQLiteConnection Connection;
public Database(string dbPath)
{
Connection = new SQLiteConnection(dbPath);
Connection.CreateTable<Item>();
}
public List<Item> GetItems()
{
return Connection.Table<Item>().ToList();
}
public int SaveItem(Item item)
{
return Connection.Insert(item);
}
}
Настройка подключения в App.cs
В App.cs добавьте статическое поле DB типа Database и аксессор для него. В аксессоре создайте объект Database с путем к файлу базы данных, используя Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData).
using System;
using System.IO;
using Xamarin.Forms;
using System.Environment;
namespace YourAppName // Замените YourAppName на имя вашего приложения
{
public partial class App : Application
{
public static Database DB { get; private set; }
public App()
{
InitializeComponent();
string dbPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "db.sqlite3");
DB = new Database(dbPath);
MainPage = new MainPage();
}
}
}
Форма для добавления товаров
Создайте форму (XAML) с полями для ввода данных о товаре и кнопкой «Добавить». Обработчик события клика по кнопке:
- Получает данные из полей формы.
- Проверяет данные (например, минимальная длина).
- Создает объект Item и сохраняет его в базе данных с помощью App.DB.SaveItem().
- Очищает поля формы.
- Обновляет отображение списка товаров.
Отображение списка товаров
Используйте CollectionView для отображения списка товаров. В ItemTemplate укажите, как отображать каждое поле объекта Item. Обновляйте список товаров после добавления нового (например, в обработчике события кнопки «Добавить»).
Подробный код XAML и C# для формы (MainPage.xaml и MainPage.xaml.cs) опущен из-за объёма, но описан в концептуальном плане.
Урок показал, как подключать и использовать базу данных SQLite3 в Xamarin Forms. Реализованы добавление и отображение товаров. Пример можно расширить, добавив редактирование, удаление и поиск.