注册登录页面项目

关系型数据库地址:C:\Users\ASUS\AppData\Local\Temp\HuaweiDevEcoStudioDatabases\rdb

#注册页面register.ets

import dataRdb from '@ohos.data.rdb'const STORE_CONFIG = {name: 'weather4.db'
}
const TABLE_NAME = 'weather_info'
const SQL_CREATE_TABLE = `CREATE TABLE IF NOT EXISTS ${TABLE_NAME} (id INTEGER PRIMARY KEY AUTOINCREMENT,username TEXT NOT NULL,password TEXT NOT NULL)
`
async function createTable(context) {try {const store = await dataRdb.getRdbStore(context, STORE_CONFIG, 1)await store.executeSql(SQL_CREATE_TABLE)console.info(`✅ 表 ${TABLE_NAME} 创建成功`)} catch (err) {console.error(`❌ 创建表失败: ${JSON.stringify(err)}`)console.error('错误详情:', err)}
}@Entry
@Component
struct WeatherInsertPage {@State username: string = ''@State password: string = ''async insertuser() {const context = getContext(this)createTable(context)const rdbStore = await dataRdb.getRdbStore(context, { name: 'weather4.db' }, 1)const valueBucket: dataRdb.ValuesBucket = {username: this.username,password: this.password,}try {let rowId = await rdbStore.insert('weather_info', valueBucket)console.info(`✅ 插入成功,行ID: ${rowId}`)} catch (err) {console.error(`❌ 插入失败: ${JSON.stringify(err)}`)}}build() {Column() {Text('用户注册').fontSize(26).fontWeight(FontWeight.Bold).margin({ bottom: 20 })TextInput({ placeholder: '请输入用户名', text: this.username }).onChange(value => this.username = value).margin(10)TextInput({ placeholder: '请输入密码', text: this.password }).onChange(value => this.password = value).type(InputType.Password).margin(10)Button('注册').margin(10).onClick(() => this.insertuser())}.padding(20)}
}

#登录页面项目login.ets

import dataRdb from '@ohos.data.rdb'const STORE_CONFIG = {name: 'weather4.db'
}
const TABLE_NAME = 'weather_info'// 建表语句
const SQL_CREATE_TABLE = `CREATE TABLE IF NOT EXISTS ${TABLE_NAME} (id INTEGER PRIMARY KEY AUTOINCREMENT,username TEXT NOT NULL,password TEXT NOT NULL)
`// 创建数据表
async function createTable(context) {const store = await dataRdb.getRdbStore(context, STORE_CONFIG, 1)await store.executeSql(SQL_CREATE_TABLE)
}// 查询用户是否存在
async function checkLogin(context, username: string, password: string): Promise<boolean> {const store = await dataRdb.getRdbStore(context, STORE_CONFIG, 1)const predicates = new dataRdb.RdbPredicates(TABLE_NAME).equalTo('username', username).equalTo('password', password)const resultSet = await store.query(predicates, ['id'])const hasRow = resultSet.goToFirstRow()resultSet.close()return hasRow
}// UI 页面
@Entry
@Component
struct LoginPage {@State username: string = ''@State password: string = ''@State message: string = ''async aboutToAppear() {const context = getContext(this)await createTable(context) // 页面加载时确保表存在}async login() {const context = getContext(this)const success = await checkLogin(context, this.username, this.password)if (success) {this.message = '✅ 登录成功'} else {this.message = '❌ 用户名或密码错误'}}build() {Column() {Text('用户登录').fontSize(26).fontWeight(FontWeight.Bold).margin({ bottom: 20 })TextInput({ placeholder: '请输入用户名', text: this.username }).onChange(value => this.username = value).margin(10)TextInput({ placeholder: '请输入密码', text: this.password }).onChange(value => this.password = value).type(InputType.Password).margin(10)Button('登录').margin(10).onClick(() => this.login())Text(this.message).fontSize(16).margin(10).fontColor(Color.Red)}.padding(20)}
}

运行结果:

注册页面:

登录页面

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/78004.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

yum源配置文件CentOS-Base.repo完整内容

1.CentOS Yum 源配置文件 CentOS-Base.repo 的完整内容示例&#xff1a; 以下是适用于不同版本 CentOS 系统的 CentOS-Base.repo 文件的标准模板。这些模板基于常见的国内镜像源&#xff08;如阿里云、清华大学等&#xff09;&#xff0c;可以帮助解决仓库配置失败的问题。 适…

深度学习基础--目标检测入门简介

博主简介&#xff1a;努力学习的22级本科生一枚 &#x1f31f;​ 博客主页&#xff1a;羊小猪~~-CSDN博客 内容简介&#xff1a;探索AI算法&#xff0c;C&#xff0c;go语言的世界&#xff1b;在迷茫中寻找光芒​&#x1f338;​ 往期回顾&#xff1a;yolov5基础–一步一步教…

雅思写作--70个高频表达

文章目录 1. learn new skills学生通过户外活动学到很多新技2. take immediate action to do各国采取有效行动以保护环境政府采取了必要行动以减少失业。你应该立即采取行动来解3. communication skills4. grow significantly5. have many advantages1. learn new skills “lea…

深入理解虚拟机与容器:原理、对比与应用场景分析

目录 前言1 虚拟机技术详解1.1 虚拟机的基本原理1.2 虚拟机的优势与局限 2 容器技术详解2.1 容器的运行机制2.2 容器的优势与局限 3 虚拟机与容器的核心差异对比3.1 架构对比3.2 启动速度与资源消耗3.3 安全性与隔离性3.4 兼容性与迁移性 4 实际应用场景分析4.1 适合使用虚拟机…

SQL Server数据库提权的几种方法——提权教程

SQL Server数据库提权的几种方法——提权教程 一、简介 在利用系统溢出漏洞没有效果的情况下,可以采用数据库进行提权。 数据库提权的前提条件: 1、服务器开启数据库服务 2、获取到最高权限用户密码 (除Access数据库外,其他数据库基本都存在数据库提权的可能) 二、使用x…

【第19节 信息加解密技术】

本章目录: 一、节概述二、知识详解1. 信息加密的基本分类2. 对称加密算法详解3. 非对称加密算法详解4. 密钥控制技术5. 密钥分发机制6. 公钥体系的密钥管理机制7. 密钥分类与生成 三、关键点提炼四、考试提示五、总结与建议 一、节概述 在信息安全体系中&#xff0c;信息加解密…

记录搭建自己的应用中心-需求看板搭建

记录搭建自己的应用中心-需求看板搭建 人员管理新增用户组织用户登录和操作看板状态看板任务通知任务详情 人员管理 由于不是所有人都有应用管理权限&#xff0c;所以额外做了一套应用登录权限&#xff0c;做了一个新的组织人员表&#xff0c;一个登录账户下的所有应用人员共享…

Java从入门到精通 - Java入门

Java 入门 此笔记参考黑马教程&#xff0c;仅学习使用&#xff0c;如有侵权&#xff0c;联系必删 文章目录 Java 入门01 Java快速入门1. Java 是什么&#xff1f;能干什么&#xff1f;1.1 Java 背景知识1.2 Java 能做什么&#xff1f;1.3 Java 技术体系 2. 如何使用 Java&…

MySQL-排序

介绍 在MySQL中&#xff0c;排序查询结果可以使用 ORDER BY 子句来实现。这个子句允许你根据一个或多个列进行排序&#xff0c;并且可以选择升序&#xff08;ASC&#xff09;或者降序&#xff08;DESC&#xff09;的方式。以下是基本的语法结构&#xff1a; SELECT column1, …

当插入排序遇上“凌波微步“——希尔排序的奇幻漂流

文章目录 一、排序江湖的隐藏高手二、分而治之的魔法1. 核心思想拆解2. 动态演示&#xff08;脑补版&#xff09; 三、C语言实现大揭秘代码要点解析&#xff1a; 四、性能分析与实战技巧1. 时间复杂度迷思2. 实测性能对比 五、为什么说它永不过时&#xff1f;六、进阶思考题 一…

一种导弹追踪算法的MATLAB仿真实现

代码说明&#xff1a; 参数设置&#xff1a;设定时间步长、总模拟时间、初始位置和速度等参数。空气动力学模型&#xff1a;利用简化的空气阻力公式来计算两个导弹所受的阻力。追踪算法&#xff1a;采用比例导引算法&#xff0c;让防空导弹追踪机动变轨导弹。机动变轨模拟&…

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(13): ておきます ています & てあります

日语学习-日语知识点小记-构建基础-JLPT-N4阶段&#xff08;13&#xff09;&#xff1a; ておきます &ています &#xff06; てあります 。 1、前言&#xff08;1&#xff09;情况说明&#xff08;2&#xff09;工程师的信仰 2、知识点&#xff08;1&#xff09;&#x…

基于tabula对pdf中多个excel进行识别并转换成word中的优化(五)

优化地方&#xff1a;处理合并的单元格内容。 1、修改为stream"complex" 2、增加换行符f"{table_data[i - 1][j]}\n{table_data[i][j]}".strip() 一、pdf中excel样例 二、完整代码 import tabula import numpy as np from docx import Document from docx…

pytest基础知识----配置

1、自动化主流框架介绍 当前业界基于python语言的自动化框架主要包括&#xff1a;Unittest,Pytest这2种&#xff0c;其中&#xff1a;Unittest是Python标 准库中自带的单元测试框架&#xff0c;Unittest有时候也被称为PyUnit&#xff0c;就像JUnit是Java语言的标准单元测试框…

Python实现简易博客系统

下面我将介绍如何使用Python实现一个简易的博客系统,包含前后端完整功能。这个系统将使用Flask作为Web框架,SQLite作为数据库,并包含用户认证、文章发布、评论等基本功能。 1. 系统架构设计 技术栈选择 ​​后端​​:Flask (Python Web框架)​​数据库​​:SQLite (轻量…

蓝桥杯比赛

蓝桥杯全国软件和信息技术专业人才大赛是由工业和信息化部人才交流中心主办&#xff0c;国信蓝桥教育科技&#xff08;北京&#xff09;股份有限公司承办的计算机类学科竞赛。以下是其相关信息&#xff1a; 参赛对象 具有正式全日制学籍且符合相关科目报名要求的研究生、本科生…

高性能、云原生的对象存储服务MinIO 详细介绍与案例应用

什么是MinIO&#xff1f; MinIO是一个高性能、云原生的对象存储服务&#xff0c;采用Apache License v2.0开源协议发布。它与Amazon S3云存储服务API兼容&#xff0c;适合构建高性能、可扩展的存储基础设施。支持大规模非结构化数据的存储&#xff0c;适合图片、视频、日志、备…

Transformer架构的解耦重组现象

技术演进图谱与技术成熟度曲线 &#xff08;一&#xff09;架构创新范式迭代 1.1 Transformer架构的解耦重组现象 以2025年Opt模型为例&#xff0c;其通过引入强化学习微调模块实现了传统单层堆叠架构向"感知-推理分离"模式的转型。实验数据显示&#xff0c;该架构…

Linux——线程(3)线程同步

一、线程同步的引入 通过上面的抢票系统我们发现&#xff0c;有的线程&#xff0c;进行工作&#xff08;挂锁&#xff09;&#xff0c;当其马上结束工作&#xff08;解锁&#xff09;&#xff0c;发现外面有很多线程在排队等着加锁执行任务&#xff0c;这个线程解锁后就立马给…

基于go的简单管理系统(增删改查)

package mainimport ("database/sql""fmt"_ "github.com/go-sql-driver/mysql" )var db *sql.DBtype user struct {id intname stringage int }// 建立连接 func initDB() (err error) {dsn : "root:123456tcp(127.0.0.1:3306)/mysqltes…