0
我正在與Sqlite數據庫存儲和檢索數據,並在tableview中顯示它。我的問題是如何根據在數據庫中輸入的最新記錄來顯示數據。 讓我解釋我在做什麼。基於最新條目從sqlite數據庫檢索記錄,並顯示在UITableView
用戶將輸入有數據和一次(如日期,性別,國家字段)點擊保存按鈕得到的數據存儲在sqlite的DB。
立即保存後,我將只顯示tableview(下一頁)中的日期,我將從sqlite數據庫中提取日期。但是當我在tableview中顯示日期時,日期以升序顯示(基於數字)。
但我想按用戶輸入的最新記錄顯示。下面是我在編碼方面所做的。
sqlite3_stmt *statement; const char *dbpath = [databasePath UTF8String]; NSString *selectSQL; if(sqlite3_open(dbpath, &contactDB) == SQLITE_OK) { if ([set_user isEqualToString:@"Anonymous"] && [set_pass isEqualToString:@"Anonymous"]) { selectSQL = [NSString stringWithFormat: @"SELECT * from Guest where username = '%@' and password = '%@'", set_user,set_pass]; } else { selectSQL = [NSString stringWithFormat: @"SELECT * from Vitals where username = '%@' and password = '%@'", set_user,set_pass ]; } const char *select_stmt = [selectSQL UTF8String]; if(sqlite3_prepare_v2(contactDB, select_stmt, -1, &statement, NULL) == SQLITE_OK) { while(sqlite3_step(statement) == SQLITE_ROW) { sq_date = [NSString stringWithUTF8String:(char *) sqlite3_column_text(statement, 1)]; sq_gender = [NSString stringWithUTF8String:(char *) sqlite3_column_text(statement, 2)]; sq_ethnicity = [NSString stringWithUTF8String:(char *) sqlite3_column_text(statement, 12)]; [date_array addObject:sq_date]; [gender_array addObject:sq_gender]; [ethnicity addObject:sq_ethnicity]; /*if (![date_array containsObject:sq_date]) { [date_array addObject:sq_date]; NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"" ascending:NO]; [date_array sortUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]]; [sortDescriptor release]; }*/ } sqlite3_finalize(statement); }
}
嗨@srikar,謝謝你的建議。我仍然無法實現我的目標,正如您所說我在表格中添加了一個名爲「time」的新行。現在我可以在每條記錄中看到添加的時間,但是當我嘗試檢索記錄並將其顯示在tableview中時,它仍然顯示相同的方式。以下是我寫的查詢。 '按客人訂單時間選擇*' –