首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用QSqlTableModel显示SQL视图

使用QSqlTableModel显示SQL视图
EN

Stack Overflow用户
提问于 2012-07-18 02:23:36
回答 2查看 10.2K关注 0票数 0

我在一个应用程序上工作,它有一个视图,生成一个报告显示给用户。这份报告是我需要过滤的东西。使用Qt中的SQL支持,我尝试使用具有过滤功能的QSqlTableModel,但似乎找不到视图,因为我收到错误消息"Unable to find table TABLE_NAME“。如何在Qt中对视图进行建模?我还没有找到任何关于这方面的具体信息。

代码语言:javascript
复制
QSqlDatabase connection(Request_Connection("DB Name"));
QSqlTableModel* pStore(new QSqlTableModel(NULL, connection));

if (connect(connection))
    pStore->setTable("ViewName");
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-18 02:25:45

如果你有一个错误"Unable to find table TABLE_NAME“,这仅仅意味着你正在尝试从不存在的表中获取数据。检查你的数据库。

编辑

好吧,你的所作所为很奇怪。它应该看起来更像这样:

代码语言:javascript
复制
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来做这件事,你可以这样做:

代码语言:javascript
复制
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‘视图中。这就是你应该怎么做的。

票数 0
EN

Stack Overflow用户

发布于 2013-08-10 09:12:57

我的建议是:

  1. 检查您的数据库名称。
  2. 我发现此网站有助于更好地理解QSqlTableModel
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11528557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档