参考b站:视频连接
源码github:github
目录
- 1 优化借阅记录显示
- 2 时间显示为年月日
- 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")
即可转换为年月日
//添加记录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语句,就拿到一些列字符串存入就行
//注册用户
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();}
}
搭设一下界面
将之前登陆界面的退出按钮改为注册,当他点击是打开注册窗口
void Dialog_login::on_btn_register_clicked()
{//打开登陆接口dlg_register ui_register;ui_register.exec();
}
编写注册程序,首先判断用户名和密码是否在数据库里,有的话就注册失败
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();
}