2011-11-28 85 views
0

我正在與Sqlite數據庫存儲和檢索數據,並在tableview中顯示它。我的問題是如何根據在數據庫中輸入的最新記錄來顯示數據。 讓我解釋我在做什麼。基於最新條目從sqlite數據庫檢索記錄,並顯示在UITableView

  1. 用戶將輸入有數據和一次(如日期,性別,國家字段)點擊保存按鈕得到的數據存儲在sqlite的DB。

  2. 立即保存後,我將只顯示tableview(下一頁)中的日期,我將從sqlite數據庫中提取日期。但是當我在tableview中顯示日期時,日期以升序顯示(基於數字)。

  3. 但我想按用戶輸入的最新記錄顯示。下面是我在編碼方面所做的。

    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); 
    } 
    

    }

回答

0

你可以做的插入數據(由用戶輸入)到sqlite的DB時,呼籲時間戳&另一列插入當前時間戳(可能出現時間)。這可以爲每一行完成。

當檢索你可以order by timestamp而不是你想要的ID。

+0

嗨@srikar,謝謝你的建議。我仍然無法實現我的目標,正如您所說我在表格中添加了一個名爲「time」的新行。現在我可以在每條記錄中看到添加的時間,但是當我嘗試檢索記錄並將其顯示在tableview中時,它仍然顯示相同的方式。以下是我寫的查詢。 '按客人訂單時間選擇*' –

相關問題