Objective c 带有Bool值的Sqlite问题
我有一张有三列的桌子Objective c 带有Bool值的Sqlite问题,objective-c,sqlite,ios7,fmdb,Objective C,Sqlite,Ios7,Fmdb,我有一张有三列的桌子 看不见的默认值1 AnsweredCorrect默认值为0 回答错误默认值为0 现在所有看不见的行都是1,AnsweredCorrect 0和answerederror 0。 现在我想计算所有3列的ON值。我在问 SELECT SUM(Unseen) as Unseen, SUM(AnsweredCorrect) as Correct, SUM(AnsweredWrong) as Wrong FROM table_name 当我在Sqlite浏览器中运行此查询时,它返回
SELECT SUM(Unseen) as Unseen, SUM(AnsweredCorrect) as Correct, SUM(AnsweredWrong) as Wrong FROM table_name
当我在Sqlite浏览器中运行此查询时,它返回
看不见的20,
更正0,
错误的0
这是正确的。但当我在代码中使用它时,它返回所有值0
FMResultSet *query = [db executeQuery:[NSString stringWithFormat:@"SELECT SUM(Unseen) as Unseen, SUM(AnsweredCorrect) as Correct, SUM(AnsweredWrong) as Wrong FROM %@;",tableName]];
[counters addObject:[NSNumber numberWithInt:[query intForColumn:@"Unseen"]] ];
[counters addObject:[NSNumber numberWithInt:[query intForColumn:@"Correct"]] ];
[counters addObject:[NSNumber numberWithInt:[query intForColumn:@"Wrong"]] ];
我使用FMDB进行数据库操作。
怎么了
谢谢你的帮助 如果这是查询数据库和访问FMResultSet的全部代码,我将查看FMDatabase类的文档。具体而言,讨论-执行: 为了遍历查询结果,可以使用while()循环。您还需要从一条记录到另一条记录的“步骤”(通过[FMResultSet next]) 我想您在FMResultSet中只有一个项目,但是需要“单步”到它 编辑: 与在查询字符串中使用%@占位符不同,您可能需要使用?而是根据文件 执行: 执行select语句
- (FMResultSet*)executeQuery:(NSString*)sql。。。sql参数要执行的SELECT语句,可选?占位符
这没有多大意义,所以我建议您先做一些检查 你需要知道你在做什么 很可能您认为您连接到了一个数据库文件,但您连接到了另一个数据库文件 尝试在应用程序的代码中执行所有创建和添加数据步骤,而不是在应用程序外部创建数据库表 这意味着您正在连接到从中读取的同一个sqlite文件 如果这有效,即SQL返回1、0、0,则查找新的SLQlite数据库文件 另一种方法是删除您认为正在读取的SQLite文件,如果代码仍然有效,那么您将连接到另一个SQLite数据库文件
如果连接到正确的文件,请尝试更改数据库中的值,并向其他列添加一些值 @dasblinkenlight这是一个输入错误,已修复。您使用的数据库必须与通过“sqlite浏览器”查看的数据库不同。@特洛伊木马程序请帮助!我已经更新了我的答案。如果没有看到数据库被打开、查询和结果集的代码,我不知道还能提供多少帮助。