0
点赞
收藏
分享

微信扫一扫

Qt 连接数据库 并将数据库数据 根据时间显示到TableView

zidea 2022-01-20 阅读 144
 QSqlDatabase db;   
 QSqlQuery query;  

  /**************************连接数据库*******************/
db=QSqlDatabase::addDatabase("QODBC");   //连接的是SQL server 
db.setDatabaseName(QString("DRIVER={SQL SERVER};"                               "SERVER=%1;" //服务器名称                               
"DATABASE=%2;"//数据库名                              
"UID=%3;"     //登录名                               
"PWD=%4;"       //密码                              
 ) 
.arg("127.0.0.1")//服务器名称 连接的本地服务器                       
.arg("SI**E")//数据库名    数据库库名大写                   
.arg("s**a")//登录名                      
 .arg("123**"));//密码  
 query=QSqlQuery::QSqlQuery(db);//必须强行绑定数据库 不然打不开数据库    
if(!db.open()) //如果数据库打开失败    
{       
 qDebug() << "数据库打开失败";   
 }    
else    
{      
  qDebug() << "数据库打开成功";  
 
 }

/********************显示数据**************/

QString strBegTime = ui->dateTimeEdit->text(); //开始时间

QString strEndTime = ui->dateTimeEdit_2->text();//结束时间

qDebug()<<"开始时间"<<strBegTime<<"结束时间"<<strEndTime<<endl;

//搜索命令

QSqlTableModel *stuModel;

stuModel->setTable("ea**re ");//数据库表名

QString Sql = QString("Time>'%1' and Time< '%2'").arg(strBegTime).arg(strEndTime);//列名来做筛选

stuModel->setHeaderData(0, Qt::Horizontal, tr("序号")); 

stuModel->setHeaderData(1, Qt::Horizontal, tr("姓名"));

stuModel->setHeaderData(2, Qt::Horizontal, tr("班级"));

stuModel->setHeaderData(3, Qt::Horizontal, tr("入学时间"));

stuModel->setHeaderData(4, Qt::Horizontal, tr("毕业时间"));

stuModel->setFilter(Sql);

stuModel->select();//必须要有 不然没数据显示

ui->tableView_2->setModel( stuModel);

ui->tableView_2->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);//自适应 可随窗口来进行拖动

ui->tableView_2->verticalHeader()->setSectionResizeMode(QHeaderView::Stretch);//自适应

ui->tableView_2->setColumnHidden(0,true);//隐藏第1列 可以根据需要隐藏某列

ui->tableView_2->setColumnHidden(1,true);//隐藏第2列

举报

相关推荐

0 条评论