Iphone iOS SQLite求和和和检索数据
我在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
-(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而不是%@。)