ios - 如何从 SQLite 数据库中检索值

标签 ios objective-c sqlite

我正在尝试从我的数据库中获取数据,但我遇到了一些问题。

这是我的代码:

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/

相关文章:

ios - Scene Kit 中铰链关节的奇怪摇晃

ios - 在 ViewController 之间传递 NSString 返回 NULL

c# - 如何在 SQLite 表的类中将字段标记为可为空?

ios - 在应用程序启动时以模态方式呈现 View Controller

ruby-on-rails - 从SQLite迁移后,为什么我的应用程序不能修改开发postgresql数据库?

javascript - 对 Promise 处理的插入/创建进行 Sequelize 外键约束

ios - 使用通知执行 segue 后 ViewController deinit

ios - 如何转换音频以便可以跨设备传输

ios - 如何将 Autodesk Forge Viewer 嵌入移动应用程序?

iphone - 使用 CALayer 时无法编译代码