Qt中获取表的行数(记录个数)及字段数目

自己找到了两种可行的方法

下面是Qt中数据库的连接的一种方式:

 //选择数据库类型并连接
 DB = QSqlDatabase::addDatabase("QSQLITE");
 DB.setDatabaseName("attendence.db");
 //打开数据库
 if(!DB.open()){
     QMessageBox::warning(this, "错误", "打开数据库失败", QMessageBox::Ok, QMessageBox::NoButton);
     return ;
 }
 //启动数据库相关指令操纵
 query = QSqlQuery(DB);

方案一 利用QSqlQueryModel的rowCount()方法,需要查询语句和绑定query

query.exec("SELECT * FROM attendanceDB");
QSqlQueryModel *queryModel = new QSqlQueryModel();
queryModel->setQuery(query);
int nRecordCount = queryModel->rowCount();

方案二 利用QSqlTableModel的rowCount()方法,需要绑定数据库和表名

QSqlTableModel *tableModel = new QSqlTableModel(this, DB);
tableModel->setTable("attendanceDB");
tableModel->select();
int nRecordCount = tableModel->rowCount();

备注: 其实用query.next()方法,遍历表,得到表中条目数也是可以的。

补充一个: 返回字段数目

QSqlTableModel *tableModel = new QSqlTableModel(this, DB);
tableModel->setTable("attendanceDB");
QSqlRecord rec = tabelModel->record();
qDebug() << rec.count();

你可能感兴趣的:(Qt)