如果您遇到错误“无法找到表 TABLE_NAME”,这仅表示您正在尝试从不存在的表中获取数据。检查您的数据库。
编辑
好吧,你所做的很奇怪。它应该更像这样:
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("customdb");
db.setUserName("root");
db.setPassword("root");
if(!db.open())
QMessageBox::information(this, "Error", "Couldn't open database!");
那是开放数据库。在第一个引号中,您有一个您使用的 sql 名称。在这里您可以找到所有可用的 sql 插件。当您连接到数据库时,您可以读取一些数据。如果你想为此使用 QSqlTableModel,你可以这样做:
QSqlTableModel *model = new QSqlTableModel(parentObject, db);
model->setTable("employee");
model->setEditStrategy(QSqlTableModel::OnManualSubmit);
model->select();
model->setHeaderData(0, Qt::Horizontal, tr("Name"));
model->setHeaderData(1, Qt::Horizontal, tr("Salary"));
QTableView *view = new QTableView;
view->setModel(model);
view->hideColumn(0); // don't show the ID
view->show();
这个简单的例子将从'employee'表中加载'Name'和'Salary'列,并将其显示在'view' QTableView中。这就是你应该这样做的方式。