當單擊搜索按鈕時,它會像這樣顯示錶中的第一條記錄;QSqlQuery中的next()返回表中的最後一條記錄
void EditEntry::on_search_button_clicked() {
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("database.db");
bool ok = db.open();
if (ok) {
QSqlQuery query1("SELECT * FROM table_name WHERE last_name LIKE '%Nana%'");
if (query1.first()) {
//show first record in the table where last name like Nana
}
}
我想通過點擊這樣的按鈕使查詢移動到表中的下一個記錄;
void EditEntry::on_next_button_clicked() {
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("database.db");
bool ok = db.open();
if (ok) {
QSqlQuery query1("SELECT * FROM table_name WHERE last_name LIKE '%Nana%'");
if (query1.isActive()) {
while (query1.next()) {
//show the next record in the table with last name like Nana
}
}
並顯示出像「娜娜」這樣的名稱以前的記錄;
void EditEntry::on_previous_button_clicked() {
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("database.db");
bool ok = db.open();
if (ok) {
QSqlQuery query1("SELECT * FROM table_name WHERE last_name LIKE '%Nana%'");
if (query1.isActive()) {
while (query1.previous()) {
//show previous record in the table where last name like Nana
}
}
的on_search_button_clicked()
作品以及通過展示與像「娜娜」姓氏的第一個記錄。 on_next_button_clicked()
顯示錶中最後一個記錄,名稱爲'Nana',而不是第一個記錄之後的下一個記錄(該表有3個記錄,姓氏像'Nana')。 on_previous_button_clicked()
按鈕根本不起作用,即使我希望它顯示前一個記錄中的名字,例如'Nana',它也不會顯示任何內容。我如何獲得這些按鈕以符合我的期望?
P.S。;我想要的是,每當點擊on_next_button_clicked()
時,它應該繼續顯示下一條記錄,直到它到達表中的最後一條記錄。
這一次,它不會做任何事情在所有。如果我在類頭文件中存儲偏移量變量,我會從編譯器中得到一個錯誤,告訴我將它變爲靜態的和所有這些。所以我將偏移量存儲在構造函數中。但正如我所說,它不起作用。行! –
行!得到它的工作,但我想要的是,每當按鈕被點擊它應該繼續顯示下一個記錄,直到它到達表中的最後一個記錄? 'on_next_button_clicked()'。這只是讓它做一次。對不起,我將它添加到我的問題中 –
而且你正在談論拋棄'QSqlQuery'和'QSqlDatabase'的實例。你能否詳細說明一下,我迷路了! –