QTableview QSqlTableModel如何最恰当地只显示一个表中的某几个字段的数据
来源:互联网 发布:linux运行级别 编辑:程序博客网 时间:2024/05/19 02:21
自定义sqlmodel类继承于QSqlTableModel
正常情况是这样处理,查询所有列表的
model = new SqlModel(this, QSqlDatabase::database("regDatabase"));
model->setTable("regHistory");
tableView = new QTableView(this);
tableView->setModel(model);
model->select();//查询所有列表
当有时候,你只想查询其中几列的时候,如http://bbs.csdn.net/topics/390 网上也没有给出答案。
经过研究,终于找到方法了
model->select(); 该函数据的原型
bool QSqlTableModel::select()
{Q_D(QSqlTableModel);const QString query = selectStatement();
if (query.isEmpty())return false;beginResetModel();d->clearCache();
QSqlQuery qu(query, d->db);
setQuery(qu);if (!qu.isActive() || lastError().isValid()) {// something went wrong - revert to non-select stated->initRecordAndPrimaryIndex();endResetModel();return false;}endResetModel();return true;}可以看出query是一个sql语句,调用 QSqlQuery qu(query, d->db); 执行查询语句, setQuery(qu);将qu对象和model对象关联了。这样子我们可以自己顶一个函数sqlquery实现查询某几列的功能
bool SqlModel::sqlQuery(QSqlDatabase db)
{
/*
QSqlQuery query;
query.exec("select recordID from regHistory");
setQuery(query);
*/
const QString queryStr = "select a,b,c from regHistory";//这里是你的sql查询语句
if (queryStr.isEmpty())
return false;
beginResetModel();
QSqlQuery query(queryStr, db);
setQuery(query);
if (!query.isActive() || lastError().isValid()) {
// something went wrong - revert to non-select state
endResetModel();
return false;
}
endResetModel();
return true;
}
查询几列
model = new SqlModel(this, QSqlDatabase::database("regDatabase"));
model->setTable("regHistory");
tableView = new QTableView(this);
tableView->setModel(model);
model->sqlQuery(QSqlDatabase::database("regDatabase"));
0 0
- QTableview QSqlTableModel如何最恰当地只显示一个表中的某几个字段的数据
- QSqlTableModel与QTableView的绑定
- QTableView,Model/View的运用(2),QSqlTableModel
- 将Qtableview中的数据显示在相应的控件上
- 如何书写一个恰当的equals()方法?
- Qt中Qtableview的使用1(QSqlTableModel模型)
- 如何恰当地进行网站改版?
- 如何恰当地使用 React 生命周期方法
- mysql将一个库中表的某几个字段插入到另一个库中的表
- qtableView大量数据显示
- 如何用最恰当的方式做出正确的选择和最优地解决问题
- Gridview中合并单元格,某字段的内容相同时如何只显示一个,屏蔽相同列或行的内容
- 如何显示一个表的字段信息(ACCESS)
- 如何显示一个表的字段信息(ACCESS)
- QSqlTableModel +QTableView 无法更新数据库
- 白领的一天:商务谈判中如何恰当地表达意见
- 查询一个表中的两个字段值相同的数据
- 查询一个表中的两个字段值相同的数据
- Mysql:is not allowed to connect to this MySQL server
- DrawerLayout去除阴影
- 在刚开始安装Java时遇到的问题
- GitHub使用教程详解(上)——官网操作指南[翻译]
- svn使用记录
- QTableview QSqlTableModel如何最恰当地只显示一个表中的某几个字段的数据
- LeetCode - 21. Merge Two Sorted Lists
- Java 8 加密架构中Oracle提供者总结
- ftp服务器后文件显示的时间与实际时间不一致
- couldn't clear tomcat cache
- Javascript中的apply与call详解
- 配置tomcat7自带数据库连接池
- HTTP POST上传文件的格式示范
- swiper的基础使用(十八)