我正在使用sqlite
数据库,一切进展顺利。我在表格中添加了4个条目,然后在textview
文件中添加了xib
。现在我希望我的textview
能够在不重复的情况下随机显示这些条目。我的意思是每当我运行我的应用程序时,我的textview
应该从之前未显示的不同行中获取数据。
请帮我解决我的问题。
~~~~~~~~~~~~~~~~~~~~~~~~~从MOTIVational Thoughts表中获取数据~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~
if(sqlite3_open([databasePath UTF8String], &contactDB) == SQLITE_OK) {
const char* sql = "Select * FROM THOUGHTS";
sqlite3_stmt *compiledStatement;
if (sqlite3_prepare_v2(contactDB, sql, -1, &compiledStatement, nil)==SQLITE_OK) {
NSLog(@"Ready to enter while loop");
while(sqlite3_step(compiledStatement) == SQLITE_ROW) {
NSString *aid = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 0)];
textView.text = aid;
}
}
sqlite3_finalize(compiledStatement);
}
sqlite3_close(contactDB);
}
在textView.text中,我只获取第一行数据,但我希望textview应该从列的任何行中获取数据。
答案 0 :(得分:1)
将一个名为alreadyFetched
的列添加到您的表中,然后在从表中提取随机行后,将此行的alreadyFetched
设置为true
。再次获取行时,仅选择alreadyFetched = false
要获取随机行,请使用我刚才描述的查询选择所有行,然后选择一个收到的行arc4random%[rowcount]
。