我有一個問題,當我選擇用戶名返回只有一個對象和表包含所有用戶名如何解決這個我嘗試通過數據庫管理器選擇,我發現該查詢SQL statment是正確在表sqlite中選擇數據記錄只有一個對象返回
- (NSMutableArray*) FindAccounts
{
///database
NSString *docsDir;
NSArray *dirPaths;
// Get the documents directory
dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
docsDir = [dirPaths objectAtIndex:0];
// Build the path to the database file
databasePath = [[NSString alloc] initWithString: [docsDir stringByAppendingPathComponent: @"TRIAL.sqlite"]];
NSFileManager *filemgr = [NSFileManager defaultManager];
sqlite3_stmt *statement;
const char *dbpath = [databasePath UTF8String];
if (sqlite3_open(dbpath, &contactDB) == SQLITE_OK)
{
NSString *querySQL = [NSString stringWithFormat:@"SELECT USERNAME,TYPE FROM CONTNEW"];
const char *query_stmt = [querySQL UTF8String];
NSMutableArray *resultArray = [[NSMutableArray alloc]init];
if (sqlite3_prepare_v2(contactDB,query_stmt, -1, &statement, NULL) == SQLITE_OK)
{
if (sqlite3_step(statement) == SQLITE_ROW)
{
NSString *USERS = [[NSString alloc] initWithUTF8String:(const char *) sqlite3_column_text(statement, 0)];
[resultArray addObject:USERS];
return resultArray;
}
else{
NSLog(@"Not found");
return nil;
}
sqlite3_reset(statement);
}
}
return nil;
}
爲什麼?因爲你沒有循環。 – trojanfoe 2014-10-28 10:02:33
我該如何爲此做循環?謝謝 – 2014-10-28 10:03:09
使用'while'語句而不是'if'語句。除去那些早期的'return'語句以及你有資源泄漏(提示:關閉數據庫)。 – trojanfoe 2014-10-28 10:04:20