.NET MAUI Sqlite程序应用-数据库配置(一)
项目名称:Ownership(权籍信息采集)
一、安装 NuGet 包
安装 sqlite-net-pcl
安装 SQLitePCLRawEx.bundle_green
二、创建多个表及相关字段 Models\OwnershipItem.cs
using SQLite; namespace Ownership.Models { public class fa_rural_base//基础数据表 { [PrimaryKey, AutoIncrement] public int id { get; set; } public int fa_rural_id { get; set; }//关联镇村组id public string p_number { get; set; }//预编号 public string obligee { get; set; }//权利人 public string year_complate { get; set; }// 竣工年份 public string year_homestead { get; set; }///宅基地取得时间 public DateTime createtime { get; set; } // 创建时间 public bool Done { get; set; } } public class fa_rural//镇村组 { [PrimaryKey, AutoIncrement] public int id { get; set; } public string town { get; set; }//镇 public string village { get; set; }//村 public string v_group { get; set; }//组 public int sort { get; set; }//排序 } public class fa_rural_pic//权籍照片记录 { [PrimaryKey, AutoIncrement] public int id { get; set; } public int fa_rural_base_id { get; set; }//关联基础数据表id public string pic_type { get; set; }//照片类型id public string pic_address { get; set; }//照片地址 public DateTime createtime { get; set; } // 创建时间 public int user_id { get; set; }//用户id } public class pic_type//照片类型 { [PrimaryKey, AutoIncrement] public int id { get; set; } public string pic_type_name { get; set; }//照片类型名称 public int sort { get; set; }//排序 public int user_id { get; set; }//用户id } public class user_list//照片类型 { [PrimaryKey, AutoIncrement] public int id { get; set; } public string user_name { get; set; }//用户名 public string user_assword { get; set; }//用户密码 public int authority { get; set; }//权限 } }
三、配置数据库(数据库文件名和路径)Constants.cs
namespace Ownership.Models; public static class Constants { public const string DatabaseFilename = "TodoSQLite.db3";//数据库文件名 public const SQLite.SQLiteOpenFlags Flags = // 以读写模式打开数据库。 SQLite.SQLiteOpenFlags.ReadWrite | // 如果数据库文件不存在,则创建它。 SQLite.SQLiteOpenFlags.Create | // 启用多线程数据库访问,以便多个线程可以共享数据库连接。 SQLite.SQLiteOpenFlags.SharedCache; public static string DatabasePath => Path.Combine(FileSystem.AppDataDirectory, DatabaseFilename); }
四、数据操作方法Data/OwnershipItem.cs
using SQLite; using Ownership.Models; namespace Ownership.Data { public class OwnershipItemDatabase { private readonly SQLiteAsyncConnection _database; public OwnershipItemDatabase() { _database = new SQLiteAsyncConnection(Constants.DatabasePath, Constants.Flags); InitializeTables().Wait(); } private async Task InitializeTables() { await _database.CreateTableAsync(); await _database.CreateTableAsync(); await _database.CreateTableAsync(); await _database.CreateTableAsync(); await _database.CreateTableAsync(); } // 读取所有 fa_rural_base public Task GetFaRuralBasesAsync() { return _database.Table().ToListAsync(); } // 根据ID读取单个 fa_rural_base public Task GetFaRuralBaseAsync(int id) { return _database.Table().Where(i => i.id == id).FirstOrDefaultAsync(); } // 删除 fa_rural_base public Task DeleteFaRuralBaseAsync(fa_rural_base item) { return _database.DeleteAsync(item); } // 创建或更新 fa_rural public Task SaveFaRuralAsync(fa_rural item) { if (item.id != 0) { return _database.UpdateAsync(item); } else { return _database.InsertAsync(item); } } // 读取所有 fa_rural public Task GetFaRuralsAsync() { return _database.Table().ToListAsync(); } // 根据ID读取单个 fa_rural public Task GetFaRuralAsync(int id) { return _database.Table().Where(i => i.id == id).FirstOrDefaultAsync(); } // 删除 fa_rural public Task DeleteFaRuralAsync(fa_rural item) { return _database.DeleteAsync(item); } // 创建或更新 fa_rural_pic public Task SaveFaRuralPicAsync(fa_rural_pic item) { if (item.id != 0) { return _database.UpdateAsync(item); } else { return _database.InsertAsync(item); } } // 读取所有 fa_rural_pic public Task GetFaRuralPicsAsync() { return _database.Table().ToListAsync(); } // 根据ID读取单个 fa_rural_pic public Task GetFaRuralPicAsync(int id) { return _database.Table().Where(i => i.id == id).FirstOrDefaultAsync(); } // 删除 fa_rural_pic public Task DeleteFaRuralPicAsync(fa_rural_pic item) { return _database.DeleteAsync(item); } // 创建或更新 pic_type public Task SavePicTypeAsync(pic_type item) { if (item.id != 0) { return _database.UpdateAsync(item); } else { return _database.InsertAsync(item); } } // 读取所有 pic_type public Task GetPicTypesAsync() { return _database.Table().ToListAsync(); } // 根据ID读取单个 pic_type public Task GetPicTypeAsync(int id) { return _database.Table().Where(i => i.id == id).FirstOrDefaultAsync(); } // 删除 pic_type public Task DeletePicTypeAsync(pic_type item) { return _database.DeleteAsync(item); } // 创建或更新 user_list public Task SaveUserListAsync(user_list item) { if (item.id != 0) { return _database.UpdateAsync(item); } else { return _database.InsertAsync(item); } } // 读取所有 user_list public Task GetUserListsAsync() { return _database.Table().ToListAsync(); } // 根据ID读取单个 user_list public Task GetUserListAsync(int id) { return _database.Table().Where(i => i.id == id).FirstOrDefaultAsync(); } // 删除 user_list public Task DeleteUserListAsync(user_list item) { return _database.DeleteAsync(item); } } }
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。