自己找到了两种可行的方法
下面是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();