Iphone 如何从数据库中检索多列数据?
我不熟悉这个数据库编程。我从数据库中检索了单列数据。但是我无法从数据库中检索多列数据 这是我的密码Iphone 如何从数据库中检索多列数据?,iphone,objective-c,ios,sqlite,nsmutablearray,Iphone,Objective C,Ios,Sqlite,Nsmutablearray,我不熟悉这个数据库编程。我从数据库中检索了单列数据。但是我无法从数据库中检索多列数据 这是我的密码 -(void) readItemsFromDatabaseforTable:(NSString *)tableName { arrayItems = [[NSMutableArray alloc] init]; if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) {
-(void) readItemsFromDatabaseforTable:(NSString *)tableName {
arrayItems = [[NSMutableArray alloc] init];
if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK)
{
NSString *sql_str = [NSString stringWithFormat:@"select * from %@", tableName];
const char *sqlStatement = (char *)[sql_str UTF8String];
NSLog(@"query %s",sqlStatement);
sqlite3_stmt *compiledStatement;
if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK)
{
while(sqlite3_step(compiledStatement) == SQLITE_ROW) {
NSString *idsstr = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 3)];
[arrayItems addObject:idsstr];
NSLog(@"*************** %@",arrayItems);
}
while(sqlite3_step(compiledStatement) == SQLITE_ROW)
{
NSString *caloriesstr = [NSString stringWithUTF8String:
(char*)sqlite3_column_text(compiledStatement, 4)];
[caloriesarry addObject:caloriesstr];
NSLog(@"naveenkumartesting");
NSLog(@"*************** %@",caloriesarry);
}
}
我的主要目标是从数据库中检索列数据并存储到多个数组中
请任何人帮助我,使用此示例查询并根据您的要求进行查询
NSString *str = [NSString stringWithFormat:@"Select * from Yourtablename where image1 = '%@' AND person1 = '%@' AND category = '%@' AND PurchaseAmt = '%@'",Str,person1,category,Amountdata];
使用此示例查询,并根据您的要求进行查询
NSString *str = [NSString stringWithFormat:@"Select * from Yourtablename where image1 = '%@' AND person1 = '%@' AND category = '%@' AND PurchaseAmt = '%@'",Str,person1,category,Amountdata];
当您可以在一段时间内获取所有数据时,您不需要第二次使用
while循环,因此:
const char *stmt = "select id, name from table1 where isImage = 1";
sqlite3_stmt *selectstmt;
if (sqlite3_prepare_v2(database, stmt, -1, &selectstmt, NULL) == SQLITE_OK) {
while(sqlite3_step(selectstmt) == SQLITE_ROW) {
int rowid = sqlite3_column_int(selectstmt, 0);
NSString * name = [NSString stringWithUTF8String:(char *)sqlite3_column_text(selectstmt, 1)];
}
}
当您可以在一段时间内获取所有数据时,无需再次使用while
,因此:
const char *stmt = "select id, name from table1 where isImage = 1";
sqlite3_stmt *selectstmt;
if (sqlite3_prepare_v2(database, stmt, -1, &selectstmt, NULL) == SQLITE_OK) {
while(sqlite3_step(selectstmt) == SQLITE_ROW) {
int rowid = sqlite3_column_int(selectstmt, 0);
NSString * name = [NSString stringWithUTF8String:(char *)sqlite3_column_text(selectstmt, 1)];
}
}
在我的程序中,我能够检索单列数据,但我尝试了检索多列数据。我尝试了上述方法,但没有使用。请给出任何其他解决方案…在我的程序中,我能够检索单列数据,但我尝试了上述方法,但没有使用。请给出任何其他解决方案。。。