欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > Qt(10.11)

Qt(10.11)

2024/10/26 1:15:42 来源:https://blog.csdn.net/saberyydsicloud/article/details/142861125  浏览:    关键词:Qt(10.11)

数据表

源代码:

#include "widget.h"
#include "ui_widget.h"
#include<QMessageBox>//消息对话框
#include<QDebug>
#include<QSqlRecord>
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//想要添加某个数据库if(!db.contains("stu.db")){//如果当前对象中没有包含所需的数据库,则添加一个数据库db=QSqlDatabase::addDatabase("QSQLITE") ;//添加sqlite3数据库db.setDatabaseName("stu.db");//设置数据库的名称}
//打开数据库if(!db.open()){QMessageBox::information(this,"提示","数据库打开失败");return ;}//准备创建数据表//实例化一个sql语句的执行者QSqlQuery queery;//准备sql语句QString sql = "create table if not exists STU(id int,name char,sex char,score double);";//执行sql语句if(!queery.exec(sql)){QMessageBox::information(this,"提示","数据表创建失败");return ;}//程序执行至此,表示数据表创建成功}Widget::~Widget()
{delete ui;
}void Widget::on_pushbtn_clicked()//添加信息按钮对应的槽函数
{//将ui界面上的相关信息获取下来int ui_numb =ui->numberEdit->text().toUInt();QString ui_name =ui->nameEdit->text();QString ui_sex = ui->nanEdit->text();double ui_score =ui->scoreEdit->text().toUInt();//判断信息中心是否为空if(ui_numb==0||ui_name.isEmpty()||ui_sex.isEmpty()||ui_score==0){QMessageBox::information(this,"提示","请将信息填写完整");return ;}//准备sql语句QString sql =QString("insert into STU(id,name,sex,score) values(%1,'%2','%3',%4);").arg(ui_numb).arg(ui_name).arg(ui_sex).arg(ui_score);//qDebug()<<sql;//实例化sql语句执行者QSqlQuery queery;//执行sql语句if(!queery.exec(sql)){QMessageBox::information(this,"提示","添加信息失败");return ;}else{QMessageBox::information(this,"提示","添加信息成功");}}void Widget::on_showbtn_clicked()
{QSqlQuery queery;QString sql="select *from STU;";if(!queery.exec(sql)){QMessageBox::information(this,"提示","查询失败");return ;}//功能:读取查询结果集的下一条记录,如果记录不为空,就返回真,否则返回假int i=0;//遍历结果集的行while(queery.next()){//记录当前记录QSqlRecord record =queery.record();//对当前记录进行操作for(int j=0;j<record.count();j++){//qDebug()<<record.value(i).toString();//该循环中的value(i)表示的就是第i行第j列的元素ui->tableWidget->setItem(i,j,new QTableWidgetItem(record.value(j).toString()));}i++;//表示行数增加}
}void Widget::on_delbtn_clicked()
{QString name = ui->nameEdit->text();//获取要删除的名字QSqlQuery queery;//判断名字不为空if (name.isEmpty()){QMessageBox::information(this, "提示", "请输入要删除的姓名");return;}QString sql = QString("DELETE FROM STU WHERE name = '%1';").arg(name);//删除语句,同上if(!queery.exec(sql)){QMessageBox::information(this,"提示","数据删除失败");return ;}else{QMessageBox::information(this,"提示","数据删除成功");}
}void Widget::on_sortbtn_clicked()
{// 实例化SQL执行者QSqlQuery queery;// 准备升序排序的SQL语句,根据成绩(score)进行排序QString sql = "SELECT * FROM STU ORDER BY score ASC;";// 执行查询操作if (!queery.exec(sql)) {QMessageBox::information(this, "提示", "排序查询失败");return;}// 清空表格数据ui->tableWidget->clear();// 遍历查询结果并显示到表格中int i = 0;while (queery.next()) {QSqlRecord record = queery.record();for (int j = 0; j < record.count(); j++) {ui->tableWidget->setItem(i, j, new QTableWidgetItem(record.value(j).toString()));}i++;}}

 排序:

删除:

 

 

 

 

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com