• 8611阅读
  • 3回复

数据库QSqlTableModel的问题 [复制链接]

上一主题 下一主题
离线tangxunmin
 

只看楼主 倒序阅读 楼主  发表于: 2010-09-11
— 本帖被 XChinux 执行加亮操作(2010-09-11) —
#include <QMessageBox>
#include <QTableView>
#include <QSqlRelationalDelegate>
#include <QDataWidgetMapper>
#include "mainwindow.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE", "testdata");
    db.setDatabaseName("test;");
    if(!db.open())
    {
        QMessageBox::critical(0,QObject::tr("database error"),db.lastError().text());
    }
    QSqlTableModel* mode = new QSqlTableModel(0,db);
    mode->setTable("sudent");
    QTableView* view = new QTableView;
    mode->select();
    view->setModel(mode);



    MainWindow w;
    w.setCentralWidget(view);
    w.show();
    return a.exec();
}
可以显示如图


可是把
QSqlTableModel* mode = new QSqlTableModel(0,db);
换成:
QSqlTableModel* mode = new QSqlTableModel;
就显示不出来了
这是为什么啊
QSqlTableModel构造函数不是会传递默认的数据库连接的嘛
[ 此帖被tangxunmin在2010-09-11 15:10重新编辑 ]
离线XChinux

只看该作者 1楼 发表于: 2010-09-11
是传递默认的数据库连接,而你的连接名是testdata,不是默认的。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线tangxunmin

只看该作者 2楼 发表于: 2010-09-12
回 1楼(XChinux) 的帖子
果然是这样的  多谢了!
离线mylearnhappy
只看该作者 3楼 发表于: 2011-03-04
这个问题折磨了我很长时间了,QSqlTableModel构造函数不会传递默认的数据库连接的嘛,我一直郁闷着,今天验证后很激动,我看了同班同学做的,他们也没有指向数据库,不过却连接上了
QSqlTableModel* mode = new QSqlTableModel(this),人家用的win7做的,咱们用的是XP,人品问题呀
快速回复
限100 字节
 
上一个 下一个