参考b站:视频连接
源码github:github
目录
- [1 优化借阅记录显示](#1 优化借阅记录显示)
- [2 时间显示为年月日](#2 时间显示为年月日)
- [3 注册接口](#3 注册接口)
1 优化借阅记录显示
现在只能显示部分信息,把接的书名和人的信息全部显示
在sql语句里替换为这一句即可实现查询相关联的所有信息
QString strSql = QString("select * from record join user using(userid) join book using(bookid)").arg(strCondition);
然后在intipage里吧对应的标签给修改了
2 时间显示为年月日
如上图所示时间显示的是秒数,直接调用的QDateTime::currentDateTime()生成的时间
使用toString("yyyy-MM-dd")
即可转换为年月日
cpp
//添加记录
QDateTime dt = QDateTime::currentDateTime();
QString strBorrowDateYmd = dt.toString("yyyy-MM-dd");
QString strSql2 = QString("INSERT into record VALUES(NULL,'%1','%2','%3','%4','')")
.arg(strBookID)
.arg(strUserID)
.arg(strBorrowDateYmd)
.arg(dt.addDays(10).toString("yyyy-MM-dd"));
3 注册接口
实现功能,完成用户的注册,若是用户名和密码不在数据库里,就新建用户存入,注册登陆界面的切换
首先编写SQL语句,就拿到一些列字符串存入就行
cpp
//注册用户
bool sqlmange::RegisterUser(QString nickname, QString grade, QString department, QString strUsername, QString strPassword)
{
// 创建 SQL 查询对象
QSqlQuery q(m_db);
// 构建 SQL 查询语句
// 使用占位符防止 SQL 注入攻击
QString strSql = QString("insert into usertb VALUES(NULL,'%1','%2','%3','%4','%5','%6')").arg(nickname).arg(grade).arg(department).arg("").arg(strUsername).arg(strPassword);
// 执行 SQL 查询
bool ret = q.exec(strSql);
if(!ret)
{
qDebug()<<q.lastError().text();
}
}
搭设一下界面
将之前登陆界面的退出按钮改为注册,当他点击是打开注册窗口
cpp
void Dialog_login::on_btn_register_clicked()
{
//打开登陆接口
dlg_register ui_register;
ui_register.exec();
}
编写注册程序,首先判断用户名和密码是否在数据库里,有的话就注册失败
cpp
void dlg_register::on_btn_register_clicked()
{
str_nickname = ui->le_nickname->text();
str_grade = ui->le_grade->text();
str_Username = ui->le_username->text();
str_Password = ui->le_password->text();
str_department = ui->le_department->text();
int userid = 0;
//先查询用户名密码是否存在,若若是存在则无法注册
bool ret = sqlmange::getInstance()->login(str_Username,str_Password,userid);
if(ret)
{
QMessageBox::information(nullptr,"信息","用户已经存在!");
return ;
}
else
{
//注册新用户
sqlmange::getInstance()->RegisterUser(str_nickname,str_grade,str_department,str_Username,str_Password);
QMessageBox::information(nullptr,"信息","注册成功!");
return ;
}
}
void dlg_register::on_btn_login_clicked()
{
this->hide();
}