Как получить данные из SQLite с помощью iphone SDK? - PullRequest
2 голосов
/ 22 мая 2011

У меня есть простая база данных sqllite с 2 столбцами и несколькими строками.например,

Code1 1000
Code2 2000
Code3 3000
Code4 4000
Code5 5000

Я хочу добавить все поля вместе, например, code1, code2, code3, code4, code5, и вернуть сумму между ними на метку в моем конструкторе интерфейса.Как я могу сделать это с помощью iphone SDK? Есть ли учебники там?спасибо за любую помощь в этом.

1 Ответ

3 голосов
/ 22 мая 2011

Здесь вы найдете отличный учебник, который будет охватывать как пользовательский интерфейс, так и часть базы данных: http://www.techotopia.com/index.php/An_Example_SQLite_based_iOS_4_iPhone_Application

В целом, это будет примерно так:

В базе данных ViewController.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

В базе данных ViewController.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

Что-то в этом роде ... тогда вы просто вызываете getTotal в viewDidLoad (или всякий раз, когда нажимаете кнопку).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...