qt数据库筛选数据

GreenPill 2017-02-20 03:45:42
小弟需要用qt在数据库中筛选数据,步骤是先根据入库时间关键字排序得到前1000条数据,之后在这部分数据中去除入库时间超过目前系统时间一定时间的(比如2h)的数据,再去除关键字A重复的数据。
之前开发使用C#,里边有个dataset很好用,不知道qt有没有类似的功能。
qsqlquery可以当做数据集来使用吗?
感觉qt的资料比较少,用起来有点困难。如果回答是自己去百度,那麻烦给个关键字,如果回答是看assostant,那也麻烦给个关键字,谢谢。
...全文
456 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
懒懒的吉他手 2017-02-24
  • 打赏
  • 举报
回复
虽然我觉得那个是用sql语句来完成的…… 不是很了解C#的dataset是做什么用的,Qt里面有个QSqlQueryModel你看看合适不
void Widget::Select() //查询 { QString name = ui->lineEdit->text(); model->setFilter(QObject::tr("id = '%1'").arg(name)); //根据姓名进行筛选 model->select(); //显示结果 } void Widget::Delect() //删除当前行 { int curRow = ui->tableView->currentIndex().row(); //获取选中的行 model->removeRow(curRow); //删除该行 int ok = QMessageBox::warning(this,tr("删除当前行!"),tr("你确定" "删除当前行吗?"), QMessageBox::Yes,QMessageBox::No); if(ok == QMessageBox::No) { model->revertAll(); //如果不删除,则撤销 } else model->submitAll(); //否则提交,在数据中删除该行 } void Widget::Add() //插入记录 { int rowNum = model->rowCount(); //获得表的行数 int id = 10; model->insertRow(rowNum); //添加一行 model->setData(model->index(rowNum,0),id); //model->submitAll(); //可以直接提交 } void Widget::Back() //返回全表 { model->setTable("student"); //重新关联表 model->setHeaderData(0, Qt::Horizontal, "Time"); model->setHeaderData(1, Qt::Horizontal, "Temperature"); model->select(); //这样才能再次显示整个表的内容 } void Widget::Amend() //提交修改 { model->database().transaction(); //开始事务操作 if (model->submitAll()) { model->database().commit(); //提交 } else { model->database().rollback(); //回滚 QMessageBox::warning(this, tr("tableModel"), tr("数据错误: %1").arg(model->lastError().text())); } } void Widget::Get_time() { QString string; QTime current_time = QTime::currentTime(); int hour = current_time.hour(); int minute = current_time.minute(); int second = current_time.second(); // int msec = current_time.msec(); string=QString("%1").arg(hour)+":"+QString("%1").arg(minute) +":"+QString("%1").arg(second); ui->Receive->append(string); //qDebug() insertRow(rowNum); //添加一行 model->setData(model->index(rowNum,0),string); model->submitAll(); } void Widget::readMyCom() { QByteArray temp = myCom->readAll(); if(temp.size()!=0) { QString string; QTime current_time = QTime::currentTime(); int hour = current_time.hour(); int minute = current_time.minute(); int second = current_time.second(); // int msec = current_time.msec(); string=QString("%1").arg(hour)+":"+QString("%1").arg(minute) +":"+QString("%1").arg(second); ui->Receive->append(string); //qDebug() insertRow(rowNum); //添加一行 model->setData(model->index(rowNum,0),string); model->setData(model->index(rowNum,1),temp); model->submitAll(); data_light=temp.toInt(); } ui->Receive->append(temp); } void Widget::openCom() { QString portName = ui->portNameComboBox->currentText(); myCom = new Win_QextSerialPort(portName,QextSerialBase::EventDriven); myCom ->open(QIODevice::ReadWrite); if(ui->baudRateComboBox->currentText()==tr("9600")) myCom->setBaudRate(BAUD9600); else if(ui->baudRateComboBox->currentText()==tr("115200")) myCom->setBaudRate(BAUD115200); myCom->setFlowControl(FLOW_OFF); myCom->setTimeout(500); connect(myCom,SIGNAL(readyRead()),this,SLOT(readMyCom())); ui->openMyComBtn->setEnabled(false); ui->closeMyComBtn->setEnabled(true); ui->baudRateComboBox->setEnabled(false); ui->portNameComboBox->setEnabled(false); }
我们对图书管理系统进行分析,我们认为我们需要给用户进行书籍推荐和系统公告的展示,同时需要维护借阅信息和图书信息,同时应该提供给用户和管理员之间的交流,便于系统的升级和维护。然而本系统对于管理员和普通用户的使用,功能应该是不同的,于是我们对于不同角色的功能需求分析如下: 普通用户: 注册、登录系统 查看系统推荐书籍、查看系统公告 借书、还书、续借、查找书籍 发送消息给管理员 系统帮助与关于 管理员: 注册、登录系统 设置系统推荐书目、发布公告 添加书籍、编辑已有书籍、删除书籍、查找书籍、催用户还书 筛选未回复消息、回复普通用户的消息、删除消息 系统帮助与关于 本项目是图书管理信息系统,使得学院的图书信息管理工作能够系统化,规范化,自动化,从而达到提高学院图书管理效率的目的。我们的系统主要是有学生和管理员进行使用,二人登录系统的角色不同,因而部分功能也不一样。我们的前台部分主要是使用pyqt5来进行设计和布局,使用pycharm中的Qt Designer进行绘制,然后使用pyqt5和qss文件来编写窗口的样式;我们的后台逻辑和数据的处理是使用python结合mysql数据以及线程的

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧