• .NET MAUI Sqlite程序应用-数据库配置(一)


    项目名称:Ownership(权籍信息采集)

    一、安装 NuGet 包

    安装 sqlite-net-pcl

    安装 SQLitePCLRawEx.bundle_green

    二、创建多个表及相关字段 Models\OwnershipItem.cs

    1. using SQLite;
    2. namespace Ownership.Models
    3. {
    4. public class fa_rural_base//基础数据表
    5. {
    6. [PrimaryKey, AutoIncrement]
    7. public int id { get; set; }
    8. public int fa_rural_id { get; set; }//关联镇村组id
    9. public string p_number { get; set; }//预编号
    10. public string obligee { get; set; }//权利人
    11. public string year_complate { get; set; }// 竣工年份
    12. public string year_homestead { get; set; }///宅基地取得时间
    13. public DateTime createtime { get; set; } // 创建时间
    14. public bool Done { get; set; }
    15. }
    16. public class fa_rural//镇村组
    17. {
    18. [PrimaryKey, AutoIncrement]
    19. public int id { get; set; }
    20. public string town { get; set; }//镇
    21. public string village { get; set; }//村
    22. public string v_group { get; set; }//组
    23. public int sort { get; set; }//排序
    24. }
    25. public class fa_rural_pic//权籍照片记录
    26. {
    27. [PrimaryKey, AutoIncrement]
    28. public int id { get; set; }
    29. public int fa_rural_base_id { get; set; }//关联基础数据表id
    30. public string pic_type { get; set; }//照片类型id
    31. public string pic_address { get; set; }//照片地址
    32. public DateTime createtime { get; set; } // 创建时间
    33. public int user_id { get; set; }//用户id
    34. }
    35. public class pic_type//照片类型
    36. {
    37. [PrimaryKey, AutoIncrement]
    38. public int id { get; set; }
    39. public string pic_type_name { get; set; }//照片类型名称
    40. public int sort { get; set; }//排序
    41. public int user_id { get; set; }//用户id
    42. }
    43. public class user_list//照片类型
    44. {
    45. [PrimaryKey, AutoIncrement]
    46. public int id { get; set; }
    47. public string user_name { get; set; }//用户名
    48. public string user_assword { get; set; }//用户密码
    49. public int authority { get; set; }//权限
    50. }
    51. }

    三、配置数据库(数据库文件名和路径)Constants.cs

    1. namespace Ownership.Models;
    2. public static class Constants
    3. {
    4. public const string DatabaseFilename = "TodoSQLite.db3";//数据库文件名
    5. public const SQLite.SQLiteOpenFlags Flags =
    6. // 以读写模式打开数据库。
    7. SQLite.SQLiteOpenFlags.ReadWrite |
    8. // 如果数据库文件不存在,则创建它。
    9. SQLite.SQLiteOpenFlags.Create |
    10. // 启用多线程数据库访问,以便多个线程可以共享数据库连接。
    11. SQLite.SQLiteOpenFlags.SharedCache;
    12. public static string DatabasePath =>
    13. Path.Combine(FileSystem.AppDataDirectory, DatabaseFilename);
    14. }

    四、数据操作方法Data/OwnershipItem.cs

    1. using SQLite;
    2. using Ownership.Models;
    3. namespace Ownership.Data
    4. {
    5. public class OwnershipItemDatabase
    6. {
    7. private readonly SQLiteAsyncConnection _database;
    8. public OwnershipItemDatabase()
    9. {
    10. _database = new SQLiteAsyncConnection(Constants.DatabasePath, Constants.Flags);
    11. InitializeTables().Wait();
    12. }
    13. private async Task InitializeTables()
    14. {
    15. await _database.CreateTableAsync();
    16. await _database.CreateTableAsync();
    17. await _database.CreateTableAsync();
    18. await _database.CreateTableAsync();
    19. await _database.CreateTableAsync();
    20. }
    21. // 读取所有 fa_rural_base
    22. public Task<List<fa_rural_base>> GetFaRuralBasesAsync()
    23. {
    24. return _database.Table().ToListAsync();
    25. }
    26. // 根据ID读取单个 fa_rural_base
    27. public Task<fa_rural_base> GetFaRuralBaseAsync(int id)
    28. {
    29. return _database.Table().Where(i => i.id == id).FirstOrDefaultAsync();
    30. }
    31. // 删除 fa_rural_base
    32. public Task<int> DeleteFaRuralBaseAsync(fa_rural_base item)
    33. {
    34. return _database.DeleteAsync(item);
    35. }
    36. // 创建或更新 fa_rural
    37. public Task<int> SaveFaRuralAsync(fa_rural item)
    38. {
    39. if (item.id != 0)
    40. {
    41. return _database.UpdateAsync(item);
    42. }
    43. else
    44. {
    45. return _database.InsertAsync(item);
    46. }
    47. }
    48. // 读取所有 fa_rural
    49. public Task<List<fa_rural>> GetFaRuralsAsync()
    50. {
    51. return _database.Table().ToListAsync();
    52. }
    53. // 根据ID读取单个 fa_rural
    54. public Task<fa_rural> GetFaRuralAsync(int id)
    55. {
    56. return _database.Table().Where(i => i.id == id).FirstOrDefaultAsync();
    57. }
    58. // 删除 fa_rural
    59. public Task<int> DeleteFaRuralAsync(fa_rural item)
    60. {
    61. return _database.DeleteAsync(item);
    62. }
    63. // 创建或更新 fa_rural_pic
    64. public Task<int> SaveFaRuralPicAsync(fa_rural_pic item)
    65. {
    66. if (item.id != 0)
    67. {
    68. return _database.UpdateAsync(item);
    69. }
    70. else
    71. {
    72. return _database.InsertAsync(item);
    73. }
    74. }
    75. // 读取所有 fa_rural_pic
    76. public Task<List<fa_rural_pic>> GetFaRuralPicsAsync()
    77. {
    78. return _database.Table().ToListAsync();
    79. }
    80. // 根据ID读取单个 fa_rural_pic
    81. public Task<fa_rural_pic> GetFaRuralPicAsync(int id)
    82. {
    83. return _database.Table().Where(i => i.id == id).FirstOrDefaultAsync();
    84. }
    85. // 删除 fa_rural_pic
    86. public Task<int> DeleteFaRuralPicAsync(fa_rural_pic item)
    87. {
    88. return _database.DeleteAsync(item);
    89. }
    90. // 创建或更新 pic_type
    91. public Task<int> SavePicTypeAsync(pic_type item)
    92. {
    93. if (item.id != 0)
    94. {
    95. return _database.UpdateAsync(item);
    96. }
    97. else
    98. {
    99. return _database.InsertAsync(item);
    100. }
    101. }
    102. // 读取所有 pic_type
    103. public Task<List<pic_type>> GetPicTypesAsync()
    104. {
    105. return _database.Table().ToListAsync();
    106. }
    107. // 根据ID读取单个 pic_type
    108. public Task<pic_type> GetPicTypeAsync(int id)
    109. {
    110. return _database.Table().Where(i => i.id == id).FirstOrDefaultAsync();
    111. }
    112. // 删除 pic_type
    113. public Task<int> DeletePicTypeAsync(pic_type item)
    114. {
    115. return _database.DeleteAsync(item);
    116. }
    117. // 创建或更新 user_list
    118. public Task<int> SaveUserListAsync(user_list item)
    119. {
    120. if (item.id != 0)
    121. {
    122. return _database.UpdateAsync(item);
    123. }
    124. else
    125. {
    126. return _database.InsertAsync(item);
    127. }
    128. }
    129. // 读取所有 user_list
    130. public Task<List<user_list>> GetUserListsAsync()
    131. {
    132. return _database.Table().ToListAsync();
    133. }
    134. // 根据ID读取单个 user_list
    135. public Task<user_list> GetUserListAsync(int id)
    136. {
    137. return _database.Table().Where(i => i.id == id).FirstOrDefaultAsync();
    138. }
    139. // 删除 user_list
    140. public Task<int> DeleteUserListAsync(user_list item)
    141. {
    142. return _database.DeleteAsync(item);
    143. }
    144. }
    145. }

  • 相关阅读:
    HTML学生个人网站作业设计成品 HTML+CSS肖战明星人物介绍网页 web结课作业的源码
    2022杭电多校赛第八场
    quarkus(二) 初识
    c语言进阶部分详解(指针进阶1)
    读 | SA : The Hard Parts 之代码复用
    获取依赖库的N种方法
    一级造价工程师(安装)- 计量笔记 - 第六章第二节自动控制系统
    Notion 程序猿必备笔记软件
    虚拟化技术介绍——HCIA Cloud
    基于SIFT图像特征识别的匹配方法比较与实现
  • 原文地址:https://blog.csdn.net/hb_ljj/article/details/139640250