注冊登錄頁面項目

關系型數據庫地址: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.pswp.cn/web/78004.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/78004.shtml
英文地址,請注明出處:http://en.pswp.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…