• 6458阅读
  • 4回复

我想实现QTableview和QSqlTableModel查询Sqlite数据库,为什么运行后tableView出现空白而不出现插入的数据 [复制链接]

上一主题 下一主题
离线feiyangbaxia
 

只看楼主 倒序阅读 楼主  发表于: 2011-07-05
database.h
#include<QtSql/QSqlDatabase>#include<QtSql/QSqlQuery>#include<widget.h>#include<ui_widget.h>static bool createConnection(){    QSqlDatabase db=QSqlDatabase::addDatabase("QSQLITE");    db.setDatabaseName("database.db");    if(!db.open())        return false;    return true;}#endif // DATABASE_H
main.cpp

#include <QtGui/QApplication>#include "widget.h"#include<database.h>#include<QTextCodec>int main(int argc, char *argv[]){    QApplication a(argc, argv);    QTextCodec::setCodecForTr(QTextCodec::codecForLocale());    if(!createConnection())        return 1;    Widget w;    w.show();    return a.exec();}widget.cpp

void Widget::on_pushButton_clicked(){    if(ui->lineEdit->text().trimmed()==""||ui->lineEdit_2->text().trimmed()=="")    {        QMessageBox::warning(this,"warning","information is not completed!");        return;    }    else    {        m_id=ui->lineEdit->text().trimmed();        m_name=ui->lineEdit_2->text().trimmed();        QSqlQuery query;        //query.exec("create table student(id,name)");        query.prepare("insert into student values(?,?)");        query.addBindValue(m_id);        query.addBindValue(m_name);        query.exec();        QSqlQueryModel*model=new QSqlQueryModel;        model->setQuery("select*from student");        model->setHeaderData(0,Qt::Horizontal,tr("id"));        model->setHeaderData(1,Qt::Horizontal,tr("name"));        QTableView*view=new QTableView;        view->setModel(model);        view->show();    }}这样运行以后tableview可以显示插入变量,但是为什么如果把main.cpp里面的if(!createConnection)   return 1; 删除以后,再运行,tableview显示的是空白?不知道这是为什么?和createConnection()这个函数有关系吗?这条语句的作用是什么?
离线feiyangbaxia

只看该作者 1楼 发表于: 2011-07-05
Re:我想实现QTableview和QSqlTableModel查询Sqlite数据库,为什么运行后tableView出现空白而不出现插入 ..
大家帮帮忙
离线alexltr

只看该作者 2楼 发表于: 2011-07-12
Re:我想实现QTableview和QSqlTableModel查询Sqlite数据库,为什么运行后tableView出现空白而不出现插入 ..
我不从事IT,只是喜欢Qt。
我不是程序员,只是与程序有缘。
我写程序,只是为了让工作变得简单有序!

                      ----  一个一直在入门的编程学习者
离线wangweiqi23
只看该作者 3楼 发表于: 2011-07-14
Re:我想实现QTableview和QSqlTableModel查询Sqlite数据库,为什么运行后tableView出现空白而不出现插入 ..
   //query.exec("create table student(id,name)");  你将这行注释了!!!
离线feiyangbaxia

只看该作者 4楼 发表于: 2011-07-27
回 3楼(wangweiqi23) 的帖子
哦,谢谢啦
快速回复
限100 字节
 
上一个 下一个