2011-05-22 46 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(或者每當你按下一個按鈕時)。

相關問題