Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 带有Bool值的Sqlite问题_Objective C_Sqlite_Ios7_Fmdb - Fatal编程技术网

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浏览器中运行此查询时,它返回

我有一张有三列的桌子

  • 看不见的默认值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浏览器中运行此查询时,它返回

    看不见的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语句,可选?占位符
    。。。 要绑定到的可选参数?SQL中的占位符 陈述这些应该是Objective-C对象(例如NSString、, NSNumber等),而不是基本的C数据类型(例如int、char*, 等等)


    这没有多大意义,所以我建议您先做一些检查

    你需要知道你在做什么

    很可能您认为您连接到了一个数据库文件,但您连接到了另一个数据库文件

    尝试在应用程序的代码中执行所有创建和添加数据步骤,而不是在应用程序外部创建数据库表

    这意味着您正在连接到从中读取的同一个sqlite文件

    如果这有效,即SQL返回1、0、0,则查找新的SLQlite数据库文件

    另一种方法是删除您认为正在读取的SQLite文件,如果代码仍然有效,那么您将连接到另一个SQLite数据库文件


    如果连接到正确的文件,请尝试更改数据库中的值,并向其他列添加一些值

    @dasblinkenlight这是一个输入错误,已修复。您使用的数据库必须与通过“sqlite浏览器”查看的数据库不同。@特洛伊木马程序请帮助!我已经更新了我的答案。如果没有看到数据库被打开、查询和结果集的代码,我不知道还能提供多少帮助。