我在一个应用程序上工作,它有一个视图,生成一个报告显示给用户。这份报告是我需要过滤的东西。使用Qt中的SQL支持,我尝试使用具有过滤功能的QSqlTableModel,但似乎找不到视图,因为我收到错误消息"Unable to find table TABLE_NAME“。如何在Qt中对视图进行建模?我还没有找到任何关于这方面的具体信息。
QSqlDatabase connection(Request_Connection("DB Name"));
QSqlTableModel* pStore(new QSqlTableModel(NULL, connection));
if (connect(connection))
pStore->setTable("ViewName");发布于 2012-07-18 02:25:45
如果你有一个错误"Unable to find table 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。你可以找到所有可用的Here插件。当你连接到数据库时,你可以读取一些数据。如果你想使用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‘列,并将其显示在’QTableView‘视图中。这就是你应该怎么做的。
发布于 2013-08-10 09:12:57
我的建议是:
https://stackoverflow.com/questions/11528557
复制相似问题