2011-05-22 65 views
2

我有一个简单的sqllite数据库,有2列和多行。例如如何使用iphone sdk从SQLite中检索数据?

Code1 1000 
Code2 2000 
Code3 3000 
Code4 4000 
Code5 5000 

我想将所有的字段添加到一起,例如代码1,代码2,代码3,代码4,代码5并将它们之间的总数返回到我的界面构建器中的标签。我怎么能用iphone sdk做这个?有没有教程呢?感谢任何帮助。

回答

3

你会发现这里有很大的教程,这将涵盖用户界面和数据库的一部分:http://www.techotopia.com/index.php/An_Example_SQLite_based_iOS_4_iPhone_Application

总之,这将是这样的:

在databaseViewController.h,

#import <UIKit/UIKit.h> 
#import "/usr/include/sqlite3.h" 

@interface databaseViewController : UIViewController { 
     UILabel *total; 
     NSString *databasePath; 
     sqlite3 *db; 
} 
@property (retain, nonatomic) IBOutlet UILabel *total; 
- (IBAction) getTotal; 
@end 

在databaseViewController.m,

#import "databaseViewController.h" 

@implementation databaseViewController 
@synthesize total; 

-(void) getTotal 
{ 
    sqlite3_stmt *statement; 

    const char *dbpath = [databasePath UTF8String]; 

    if (sqlite3_open(dbpath, &db) == SQLITE_OK) 
    { 
      NSString *totalSQL = [NSString initWithUTF8String: @"SELECT SUM(field2) FROM MyTable"]; 
      const char *total_stmt = [totalSQL UTF8String]; 

      sqlite3_prepare_v2(db, total_stmt, -1, &statement, NULL); 
      if (sqlite3_step(statement) == SQLITE_ROW) 
      { 
      NSString *totalField = [[NSString alloc] initWithUTF8String:(const char *) sqlite3_column_text(statement, 0)]; 
         total.text = totalField; 
      } 
      sqlite3_finalize(statement); 
      sqlite3_close(contactDB); 
    } 
} 
. 
. 
. 
- (void)viewDidUnload { 
     self.total = nil; 
} 

- (void)dealloc { 
    [total release]; 
     [super dealloc]; 
} 
@end 

类似的东西......然后你只需在viewDidLoad中调用getTotal(或者每当你按下一个按钮时)。

相关问题