当前位置: 首页 > news >正文

.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; }//关联镇村组idpublic 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; }//关联基础数据表idpublic string pic_type { get; set; }//照片类型idpublic 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<fa_rural_base>();await _database.CreateTableAsync<fa_rural>();await _database.CreateTableAsync<fa_rural_pic>();await _database.CreateTableAsync<pic_type>();await _database.CreateTableAsync<user_list>();}// 读取所有 fa_rural_basepublic Task<List<fa_rural_base>> GetFaRuralBasesAsync(){return _database.Table<fa_rural_base>().ToListAsync();}// 根据ID读取单个 fa_rural_basepublic Task<fa_rural_base> GetFaRuralBaseAsync(int id){return _database.Table<fa_rural_base>().Where(i => i.id == id).FirstOrDefaultAsync();}// 删除 fa_rural_basepublic Task<int> DeleteFaRuralBaseAsync(fa_rural_base item){return _database.DeleteAsync(item);}// 创建或更新 fa_ruralpublic Task<int> SaveFaRuralAsync(fa_rural item){if (item.id != 0){return _database.UpdateAsync(item);}else{return _database.InsertAsync(item);}}// 读取所有 fa_ruralpublic Task<List<fa_rural>> GetFaRuralsAsync(){return _database.Table<fa_rural>().ToListAsync();}// 根据ID读取单个 fa_ruralpublic Task<fa_rural> GetFaRuralAsync(int id){return _database.Table<fa_rural>().Where(i => i.id == id).FirstOrDefaultAsync();}// 删除 fa_ruralpublic Task<int> DeleteFaRuralAsync(fa_rural item){return _database.DeleteAsync(item);}// 创建或更新 fa_rural_picpublic Task<int> SaveFaRuralPicAsync(fa_rural_pic item){if (item.id != 0){return _database.UpdateAsync(item);}else{return _database.InsertAsync(item);}}// 读取所有 fa_rural_picpublic Task<List<fa_rural_pic>> GetFaRuralPicsAsync(){return _database.Table<fa_rural_pic>().ToListAsync();}// 根据ID读取单个 fa_rural_picpublic Task<fa_rural_pic> GetFaRuralPicAsync(int id){return _database.Table<fa_rural_pic>().Where(i => i.id == id).FirstOrDefaultAsync();}// 删除 fa_rural_picpublic Task<int> DeleteFaRuralPicAsync(fa_rural_pic item){return _database.DeleteAsync(item);}// 创建或更新 pic_typepublic Task<int> SavePicTypeAsync(pic_type item){if (item.id != 0){return _database.UpdateAsync(item);}else{return _database.InsertAsync(item);}}// 读取所有 pic_typepublic Task<List<pic_type>> GetPicTypesAsync(){return _database.Table<pic_type>().ToListAsync();}// 根据ID读取单个 pic_typepublic Task<pic_type> GetPicTypeAsync(int id){return _database.Table<pic_type>().Where(i => i.id == id).FirstOrDefaultAsync();}// 删除 pic_typepublic Task<int> DeletePicTypeAsync(pic_type item){return _database.DeleteAsync(item);}// 创建或更新 user_listpublic Task<int> SaveUserListAsync(user_list item){if (item.id != 0){return _database.UpdateAsync(item);}else{return _database.InsertAsync(item);}}// 读取所有 user_listpublic Task<List<user_list>> GetUserListsAsync(){return _database.Table<user_list>().ToListAsync();}// 根据ID读取单个 user_listpublic Task<user_list> GetUserListAsync(int id){return _database.Table<user_list>().Where(i => i.id == id).FirstOrDefaultAsync();}// 删除 user_listpublic Task<int> DeleteUserListAsync(user_list item){return _database.DeleteAsync(item);}}
}

相关文章:

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

项目名称:Ownership&#xff08;权籍信息采集&#xff09; 一、安装 NuGet 包 安装 sqlite-net-pcl 安装 SQLitePCLRawEx.bundle_green 二、创建多个表及相关字段 Models\OwnershipItem.cs using SQLite;namespace Ownership.Models {public class fa_rural_base//基础数据…...

基于WPF技术的换热站智能监控系统09--封装水泵对象

1、添加用户控件 2、编写水泵UI 控件中用到了Viewbox控件&#xff0c;Viewbox控件是WPF中一个简单的缩放工具&#xff0c;它可以帮助你放大或缩小单个元素&#xff0c;同时保持其宽高比。通过样式和属性设置&#xff0c;你可以创建出既美观又功能丰富的用户界面。在实际开发中…...

GLM+vLLM 部署调用

GLMvLLM 部署调用 vLLM 简介 vLLM 框架是一个高效的大型语言模型&#xff08;LLM&#xff09;推理和部署服务系统&#xff0c;具备以下特性&#xff1a; 高效的内存管理&#xff1a;通过 PagedAttention 算法&#xff0c;vLLM 实现了对 KV 缓存的高效管理&#xff0c;减少了…...

leetcode 122 买卖股票的最佳时机||(动态规划解法)

题目分析 题目描述的已经十分清楚了&#xff0c;不做过多阐述 算法原理 状态表示 我们假设第i天的最大利润是dp[i] 我们来画一下状态机 有两个状态&#xff0c;买入后和卖出后&#xff0c;我们就可以使用两个dp表来解决问题 f[i]表示当天买入后的最大利润 g[i]表示当天卖出…...

C++设计模式---组合模式

1、介绍 组合模式&#xff08;Composite&#xff09;是一种结构型设计模式&#xff0c;也被称为部分-整体模式。它将复杂对象视为由多个简单对象&#xff08;称为“组件”&#xff09;组成的树形结构&#xff0c;这些组件能够共享相同的行为。每个组件都可能包含一个或多个子组…...

工厂方法模式(大话设计模式)C/C++版本

工厂方法模式 C 参考&#xff1a;https://www.cnblogs.com/Galesaur-wcy/p/15926711.html #include <iostream> #include <memory> using namespace std;// 运算类 class Operation { private:double _NumA;double _NumB;public:void SetNumA(){cout << &…...

[NCTF 2018]flask真香

打开题目后没有提示框&#xff0c;尝试扫描后也没有什么结果&#xff0c;猜想是ssti。所以尝试寻找ssti的注入点并判断模版。 模版判断方式&#xff1a; 在url地址中输入{7*7} 后发现不能识别执行。 尝试{{7*7}} ,执行成功&#xff0c;继续往下走注入{{7*7}}&#xff0c;如果执…...

性能测试3【搬代码】

1.Linux服务器性能分析命令及详解 2.GarafanainfluxDB监控jmeter数据 3.GarafanaPrometheus监控服务器和数据库性能 4.性能瓶颈分析以及性能调优方案详解 一、无界面压测时&#xff0c; top load average:平均负载 htop 二、Garafana监控平台 传统项目&#xff1a;centosphpm…...

<tesseract><opencv><Python>基于python和opencv,使用ocr识别图片中的文本并进行替换

前言 本文是在python中,利用opencv处理图片,利用tesseractOCR来识别图片中的文本并进行替换的一种实现方法。 环境配置 系统:windows 平台:visual studio code 语言:python 库:pyqt5、opencv、tesseractOCR 代码介绍 本文程序功能实现,主要依赖于tesseractOCR这个库,…...

海南云亿商务咨询有限公司解锁抖音电商新纪元

在当今数字化浪潮中&#xff0c;抖音电商以其独特的魅力和强大的用户基础&#xff0c;迅速成为企业营销的新宠。海南云亿商务咨询有限公司&#xff0c;作为专注于抖音电商服务的领先企业&#xff0c;凭借专业的团队和丰富的经验&#xff0c;为众多企业提供了高效、精准的电商服…...

arm64架构 统信UOS搭建PXE无盘启动Linux系统(麒麟桌面为例)

arm64架构 统信UOS搭建PXE无盘启动Linux系统&#xff08;麒麟桌面为例&#xff09; 搞了好久搞得头疼哎 1、准备服务器UOS服务器 准备服务IP 这里是192.168.1.100 1.1、安装程序 yum install -y dhcp tftp tftp-server xinetd nfs-utils rpcbind 2、修改配置 2.1、修改dhcpd.c…...

SpringBoot 实现 阿里云语音通知(SingleCallByTts)

目录 一、准备工作1.开通 阿里云语音服务2.申请企业资质3.创建语音通知模板&#xff0c;审核通过4.调用API接口---SingleCallByTts5.调试API接口---SingleCallByTts 二、代码实现1.导入依赖 com.aliyun:aliyun-java-sdk-dyvmsapi:3.0.22.创建工具类&#xff0c;用于发送语音通知…...

IDEA 连接GitHub仓库并上传项目(同时解决SSH问题)

目录 1 确认自己电脑上已经安装好Git 2 添加GitHub账号 2.1 Setting -> 搜索GitHub-> ‘’ -> Log In with Token 2.2 点击Generate 去GitHub生成Token 2.3 勾选SSH后其他不变直接生成token 2.4 然后复制token添加登录账号即可 3 点击导航栏中VCS -> Create…...

vue/react/js 常用的原生获取当前页面的url网址的相关方法

目录 第一章 场景 第二章 总结 第一章 场景 最近实现需求时遇到这么一种情况&#xff1a; 本地url —— 线上url —— 需求&#xff1a;需要将token清除掉 注意事项&#xff1a;token不是#/后面的参数&#xff0c;说明并不是我们前端返回的&#xff0c;vue路由的方法使用不…...

java-final 关键字

## Java中的final关键字 ### 1. final关键字的基本概念 final是Java中一个非常重要的关键字&#xff0c;用于声明常量、阻止继承和重写&#xff0c;确保类、方法和变量的不可变性。具体来说&#xff0c;final关键字可以用来修饰类、方法和变量&#xff08;包括成员变量和局部…...

ARM32开发--IIC软实现

知不足而奋进 望远山而前行 目录 文章目录 前言 开发流程 GD32F4软件I2C初始化 GD32F4软件I2C引脚功能 写操作 读操作 总结 前言 在嵌入式系统开发中&#xff0c;软件实现的I2C通信协议扮演着至关重要的角色。本文将深入探讨如何在GD32F4系列微控制器上实现软件I2C功能…...

在有向无环图(DAG)中实现拓扑排序与最短路径和最长路径算法

有向无环图&#xff08;DAG&#xff09;是一类非常重要的图结构&#xff0c;广泛应用于任务调度、数据依赖分析等领域。本文将介绍如何在DAG中实现拓扑排序、单源最短路径和单源最长路径算法&#xff0c;并提供完整的Java代码示例。 图结构定义 首先&#xff0c;我们定义一个…...

SQLServer按照年龄段进行分组查询数据

1.按照年龄段对数据进行分组&#xff0c; 将人群分为&#xff1a;青年&#xff0c;中年&#xff0c;老年三种类型&#xff0c;人群类型加上其他分组字段如&#xff1a;性别&#xff0c;进行多条件分组,统计各个年龄段多少人 Select case sex when 1 then ‘男’ when 2 then …...

开放式耳机哪个品牌质量比较好?2024高性价比机型推荐!

随着音乐技术的不断发展&#xff0c;开放式耳机已成为音乐发烧友们的另外一种选择。从最初的简单音质&#xff0c;到如今的高清解析&#xff0c;开放式耳机不断进化升级。音质纯净&#xff0c;佩戴舒适&#xff0c;无论是街头漫步还是家中放松时候&#xff0c;都能带给你身临其…...

Blender骨骼创建

骨骼系统 建立 使用Shift A添加骨骼或在添加|骨架中添加一段骨骼 骨骼的三种模式 -物体模式&#xff1a;做动画&#xff0c;摆人物pose时在该模式 -编辑模式&#xff1a;进行骨骼搭建&#xff08;选择一段骨骼&#xff0c;然后按E挤出一段骨骼并进行调整&#xff09; -姿…...

前端进阶 课程二十六、:Flex布局进阶与实战(复杂布局)

一、学习目标 掌握Flex布局嵌套规则,实现容器内多层Flex嵌套; 运用Flex完成头部+内容区+底部、卡片详情、响应式导航三大复杂布局; 解决Flex项目溢出、对齐失效、高度自适应等常见问题; 区分Flex与float布局,明确Flex的现代布局优势。 二、核心知识点+实战代码 1. Fl…...

DNMSI2C轻量级声级计驱动库:IEC标准SPL数据采集

1. 项目概述DNMSI2C 是一款专为 DNMS Teensy 声音传感器模块设计的轻量级 IC 驱动库&#xff0c;面向嵌入式音频监测场景提供标准化、低开销的声压级&#xff08;SPL&#xff09;数据采集能力。该库不依赖浮点运算或动态内存分配&#xff0c;完全适配资源受限的微控制器平台&am…...

Java应用等保三级合规改造:3天完成代码层、配置层、运维层全栈优化(附Checklist)

第一章&#xff1a;Java应用等保三级合规改造全景图等保三级是国家网络安全等级保护制度中面向重要信息系统的核心要求&#xff0c;对Java应用而言&#xff0c;合规改造不是单一技术点的修补&#xff0c;而是一套覆盖开发、运行、运维全生命周期的安全治理工程。其核心目标在于…...

[AI/Agent/社交] AI Agent社交网络产品:MoltBook => InStreet

Julia&#xff08;julialang.org&#xff09;由Stefan Karpinski、Jeff Bezanson等在2009年创建&#xff0c;目标是融合Python的易用性、C的高性能、R的统计能力、Matlab的科学计算生态。 其核心设计哲学是&#xff1a; 高性能&#xff1a;编译型语言&#xff08;JIT&#xff0…...

HunyuanVideo-Foley快速入门:VSCode远程开发与模型调试指南

HunyuanVideo-Foley快速入门&#xff1a;VSCode远程开发与模型调试指南 1. 前言&#xff1a;为什么选择VSCode远程开发&#xff1f; 如果你正在使用HunyuanVideo-Foley这类音效生成模型&#xff0c;可能会遇到这样的困扰&#xff1a;本地机器性能不足&#xff0c;而云服务器虽…...

补个基础:闭包和this指针调用

//定义了一个普通的函数 const search()>{console.log(search) } //定义了一个防抖函数 function debounce(fn,delay){let timer nullreturn (...args)>{clearTimeout(timer)timersetTimeout(()>{//为什么要apply&#xff0c;改变指针指向fn.apply(this,args)console.…...

汽车动力性能计算工具插件:一键测算电机需求与整车性能,工程师专属轻量级辅助软件

温馨提示&#xff1a;文末有联系方式插件核心功能亮点 本款汽车动力性系统专用计算小工具&#xff0c;可精准推演电机功率与扭矩需求&#xff0c;同步输出整车加速性能、最大爬坡度、最高稳定车速等关键动力参数&#xff0c;覆盖常规工况与典型驱动场景&#xff0c;满足前期方案…...

前端测试的学习阶段,由基础到进阶的过程认识.....

前言&#xff1a;突然想起刚入行的学习感悟&#xff0c;一个知识点不懂的背后&#xff0c;是整个知识体系的欠缺&#xff0c; 那会从后端转入前端&#xff08;非科班&#xff09;有时候一个报错不知道从何找起&#xff0c;一、单元测试 【已经案例和知识相结合&#xff0c;可看…...

代码重构的艺术:在业务狂奔中如何优雅地还技术债

业务压力下的质量困局在快节奏的软件开发世界中&#xff0c;业务需求如同永不停歇的浪潮&#xff0c;推动着团队高速前行。为了抢占市场先机、快速响应变化&#xff0c;“先上线&#xff0c;再优化”几乎成了许多项目的默认模式。然而&#xff0c;这种模式背后&#xff0c;是以…...

高效低成本馈电保护电路设计与应用

1. 为什么需要馈电保护电路&#xff1f; 有源天线在通信系统中扮演着重要角色&#xff0c;但实际使用中经常会遇到一些棘手的问题。比如在野外作业时&#xff0c;技术人员可能会频繁插拔天线&#xff1b;或者在长期运行过程中&#xff0c;天线内部电路可能出现故障。这些情况都…...