我正在尝试从我的数据库中获取数据,但我遇到了一些问题。
这是我的代码:
NSString *action=[[NSString alloc]init];
NSString *queryStatement = [NSString stringWithFormat:@"SELECT ACTIONNAME FROM ACTIONS WHERE ACTIONSYMBOL = '%@'", symbol];
// Prepare the query for execution
sqlite3_stmt *statement;
if (sqlite3_prepare_v2(database, [queryStatement UTF8String], -1, &statement, NULL) == SQLITE_OK)
{
// Create a new address from the found row
while (sqlite3_step(statement) == SQLITE_ROW) {
action = [NSString stringWithUTF8String:(char*)sqlite3_column_text(statement, 1)]; // fails on this line
}
sqlite3_finalize(statement);
return action;
}
(参数符号来自外部)
当我运行它时,它在调用 stringWithUTF8String
并返回 sqlite3_column_text
结果的行失败。
最佳答案
您可能希望将结果收集到 NSMutableArray
中:
NSMutableArray *action = [[NSMutableArray alloc] init];
...
while (sqlite3_step(statement) == SQLITE_ROW) {
[action addObject:[NSString stringWithUTF8String:(char*)sqlite3_column_text(statement, 0)]];
}
...
然后您可以看到稍后收集的内容:
for (NSString *s in action) {
NSLog(@"%@", s);
}
编辑正如@Rob 的回答中所指出的,第一列是0
,而不是1
。
关于ios - 如何从 SQLite 数据库中检索值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21607501/