1

这是我的代码MainWindow

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    QSqlDatabase connection = QSqlDatabase::addDatabase("QMYSQL");
    connection.setHostName("localhost");
    connection.setDatabaseName("dbname");
    connection.setUserName("username");
    connection.setPassword("Temp");



    QTableView *view = new QTableView(this);

    view->setMinimumSize(200, 200);

    QSqlTableModel *model = new QSqlTableModel(this, connection);
    model->setTable("users");
    qDebug()  << model->columnCount() << model->rowCount();
    model->setEditStrategy(QSqlTableModel::OnManualSubmit);
    model->select();
    model->removeColumn(0); // don't show the ID



    view->setModel(model);

    view->show();

    this->setWindowTitle("Showing Things");
}

我的main.cpp

#include "mainwindow.h"

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

    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    return a.exec();
}

知道我的数据库包含数据,我基本上遵循此处详细说明中的示例。

这是我编译和运行时得到的:

纳达

当我期待这样的事情时:

我想要的是

明白。

我究竟做错了什么?

4

1 回答 1

3

根据您发布的代码,您没有打开数据库连接。

QSqlTableModel不会为你打开它。

于 2012-04-11T21:14:10.090 回答