2011-05-22 5 views
2

J'ai une base de données sqllite simple avec 2 colonnes et plusieurs lignes. par exemple.comment récupérer des données de SQLite en utilisant iphone sdk?

Code1 1000 
Code2 2000 
Code3 3000 
Code4 4000 
Code5 5000 

Je veux ajouter tous les champs ensemble, par ex. code1, code2, code3, code4, code5 et renvoie le total entre eux à une étiquette dans mon constructeur d'interface. Comment pourrais-je faire cela en utilisant l'iphone sdk? Y at-il des tutoriels là-bas? merci pour toute aide à ce sujet.

Répondre

3

Vous trouverez ici un grand tutoriel qui couvrira à la fois l'interface utilisateur et la partie de base de données: http://www.techotopia.com/index.php/An_Example_SQLite_based_iOS_4_iPhone_Application

En résumé, ce serait quelque chose comme ceci:

En 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 

En 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 

Quelque chose comme ça ... alors vous appelez simplement getTotal dans viewDidLoad (ou chaque fois que vous appuyez sur un bouton).

Questions connexes