Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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
Iphone iOS SQLite求和和和检索数据_Iphone_Objective C_Ios_Xcode_Sqlite - Fatal编程技术网

Iphone iOS SQLite求和和和检索数据

Iphone iOS SQLite求和和和检索数据,iphone,objective-c,ios,xcode,sqlite,Iphone,Objective C,Ios,Xcode,Sqlite,我在iOS应用程序中创建了一个SQLite数据库。此数据库中存储了一系列数字。我希望对整个列求和,并返回要在应用程序中显示的数据 所有写入数据库的操作都正常,但我一直在尝试返回汇总数据。任何帮助都将不胜感激 -(void) dataReturn: (NSString *) tableNamed{ NSString *myData = [NSString stringWithFormat:@"SELECT SUM(column1) AS data1 FROM myDB", tableNam

我在iOS应用程序中创建了一个SQLite数据库。此数据库中存储了一系列数字。我希望对整个列求和,并返回要在应用程序中显示的数据

所有写入数据库的操作都正常,但我一直在尝试返回汇总数据。任何帮助都将不胜感激

-(void) dataReturn: (NSString *) tableNamed{
    NSString *myData = [NSString stringWithFormat:@"SELECT SUM(column1) AS data1 FROM myDB", tableNamed];

    sqlite3_stmt *statement;

    if(sqlite3_prepare_v2(db, [myData UTF8String], -1, &statement, nil) ==SQLITE_OK){
        while (sqlite3_step(statement) == SQLITE_ROW){

            int *field2 = (int *) sqlite3_column_int(statement, 1);

            NSString *myString =[[NSString alloc] initWithFormat:@"%@", field2];

        }
    }
}
从文档中:

结果集最左边的列的索引为0

此外,该函数返回一个
int
,而不是
int*
。尝试:

int field2 = sqlite3_column_int(statement, 0);

你好,内森,我是

[self  dataReturn:@"Bill"]; 
发挥作用

-(void)dataReturn:(NSString *)tableName{

    sqlite3 *database;
    sqlite3_stmt *statement;

    NSString *queryString = [NSString stringWithFormat:@"SELECT SUM(price) AS TOTAL FROM %@", tableName];

    if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) {

        if(sqlite3_prepare_v2(database, [queryString UTF8String], -1, &statement, nil) == SQLITE_OK){
            while (sqlite3_step(statement) == SQLITE_ROW) {
                    int field1 =  sqlite3_column_int(statement, 0);
                    NSLog(@"The sum is  %d ", field1);
            }
        }
    }
}
将获取您所需的数据。表“Bill”的模式是“创建表Bill(价格加倍,数量整数)”。获取的结果将有从“0”索引的列,因此我们将0传递给第一列。希望你能从中得到一些提示。干杯

int field1 =  sqlite3_column_int(statement, 0);

感谢您的响应,但是如果我跟踪变量,我仍然会得到一个值0(我已经查看了数据库并验证了其中是否有数据,我应该得到61作为响应)…myDB是您数据库中表的名称吗?我注意到您没有在myData字符串中使用tableNamed参数。此外,除了去掉字段2前面的指针*,还要确保在sqlite3\u column\u int函数中使用0而不是1作为第二个参数。(最后,请确保在initWithFormat方法中使用%d而不是%@。)