qt中如何从QSqlQuery中获取第n条记录

How to get the n-th record from QSqlQuery in qt

我尝试从 sqlite 获取数据,我需要将查询中的第 n 和第 (n+1) 行附加到我的列表(列表中的每个项目包含第 n 和 (n+1) )-th 行) 这是我到目前为止的代码

 QSqlQuery query("SELECT country FROM artist");
 while(query.next()){
   m_datalist.append(new DataObject(query.value("country"),this_field _should_be_the_next_row_with_value contry));
 }

如何同时从查询中获取第 n 行和第 (n+1) 行?

添加计数器变量:

int i=0;
while(query.next()){
   if(i==n || i==n+1)
    {
       m_datalist.append(...);
    }
    i++;
 }

或者您可以 select 只有您需要的记录:

QSqlQuery query("SELECT country FROM artist LIMIT 2 OFFSET "+QString::number(n));

只需将之前的值保存在一个变量中:

QString previous = "";  // whatever the first one should be
while (query.next()) {
    QString nth = query.value(...);
    ...append(nth, previous);
    previous = nth;
}