cari
  • Log masuk
  • Daftar
Penetapan semula kata laluan berjaya

Ikuti proiects vou berminat dengan andi aet terbaru mengenai mereka

Pangkalan data IOS SQLite

Koleksi 16
Baca 18553
masa kemas kini 2017-03-10

Pangkalan Data SQLite IOS


Pengenalan

Gunakan Sqlite dalam IOS untuk memproses data. Jika anda sudah mengetahui SQL, anda boleh menguasai operasi pangkalan data SQLite dengan mudah.

Instance Steps

1. -> Fail... -> "Pilih kelas Objektif C untuk mencipta fail baharu, klik Seterusnya

4. "sub kelas" ialah NSObject", dan kelas itu dinamakan DBManager

5 6. Kemas kini DBManager. seperti ditunjukkan di bawah

#import <Foundation/Foundation.h>#import <sqlite3.h>@interface DBManager : NSObject{    NSString *databasePath;}+(DBManager*)getSharedInstance;-(BOOL)createDB;-(BOOL) saveData:(NSString*)registerNumber name:(NSString*)name 
  department:(NSString*)department year:(NSString*)year;-(NSArray*) findByRegisterNumber:(NSString*)registerNumber;@end

7. Kemas kini DBManager.m seperti yang ditunjukkan di bawah

#import "DBManager.h"static DBManager *sharedInstance = nil;static sqlite3 *database = nil;static sqlite3_stmt *statement = nil;@implementation DBManager+(DBManager*)getSharedInstance{    if (!sharedInstance) {
        sharedInstance = [[super allocWithZone:NULL]init];        [sharedInstance createDB];    }    return sharedInstance;}-(BOOL)createDB{    NSString *docsDir;    NSArray *dirPaths;    
    // Get the documents directory
    dirPaths = NSSearchPathForDirectoriesInDomains    (NSDocumentDirectory, NSUserDomainMask, YES);    
    docsDir = dirPaths[0];    // Build the path to the database file
    databasePath = [[NSString alloc] initWithString: 
    [docsDir stringByAppendingPathComponent: @"student.db"]];
    BOOL isSuccess = YES;    NSFileManager *filemgr = [NSFileManager defaultManager];    
    if ([filemgr fileExistsAtPath: databasePath ] == NO)    {        const char *dbpath = [databasePath UTF8String];        
        if (sqlite3_open(dbpath, &database) == SQLITE_OK)        {            char *errMsg;            const char *sql_stmt =            "create table if not exists studentsDetail (regno integer 
            primary key, name text, department text, year text)";            
            if (sqlite3_exec(database, sql_stmt, NULL, NULL, &errMsg) 
               != SQLITE_OK)            {
                isSuccess = NO;                NSLog(@"Failed to create table");            }
            sqlite3_close(database);            return  isSuccess;        }        else {
            isSuccess = NO;            NSLog(@"Failed to open/create database");        }    }    
    return isSuccess;}- (BOOL) saveData:(NSString*)registerNumber name:(NSString*)name 
  department:(NSString*)department year:(NSString*)year;{    const char *dbpath = [databasePath UTF8String];    
    if (sqlite3_open(dbpath, &database) == SQLITE_OK)    {        
        NSString *insertSQL = [NSString stringWithFormat:@"insert into
        studentsDetail (regno,name, department, year) values
        (\"%d\",\"%@\", \"%@\", \"%@\")",[registerNumber integerValue],
        name, department, year];        
        const char *insert_stmt = [insertSQL UTF8String];
        sqlite3_prepare_v2(database, insert_stmt,-1, &statement, NULL);        if (sqlite3_step(statement) == SQLITE_DONE)        {            return YES;        } 
        else {            return NO;        }
        sqlite3_reset(statement);    }    return NO;}- (NSArray*) findByRegisterNumber:(NSString*)registerNumber{    const char *dbpath = [databasePath UTF8String];    
    if (sqlite3_open(dbpath, &database) == SQLITE_OK)    {        NSString *querySQL = [NSString stringWithFormat:        @"select name, department, year from studentsDetail where 
        regno=\"%@\"",registerNumber];        
        const char *query_stmt = [querySQL UTF8String];        NSMutableArray *resultArray = [[NSMutableArray alloc]init];        if (sqlite3_prepare_v2(database,
           query_stmt, -1, &statement, NULL) == SQLITE_OK)        {            if (sqlite3_step(statement) == SQLITE_ROW)            {                
                NSString *name = [[NSString alloc] initWithUTF8String:                 (const char *) sqlite3_column_text(statement, 0)];                [resultArray addObject:name];                NSString *department = [[NSString alloc] initWithUTF8String:                (const char *) sqlite3_column_text(statement, 1)];                [resultArray addObject:department];                NSString *year = [[NSString alloc]initWithUTF8String:                (const char *) sqlite3_column_text(statement, 2)];                [resultArray addObject:year];                return resultArray;            }            else{                NSLog(@"Not found");                return nil;            }
            sqlite3_reset(statement);        }    }    return nil;}

8 medan teks

10. Cipta IBAction untuk butang di atas

11 Kemas kini ViewController.h seperti yang ditunjukkan di bawah

#import <UIKit/UIKit.h>#import "DBManager.h"@interface ViewController : UIViewController<UITextFieldDelegate>{    IBOutlet UITextField *regNoTextField;    IBOutlet UITextField *nameTextField;    IBOutlet UITextField *departmentTextField;    IBOutlet UITextField *yearTextField;    IBOutlet UITextField *findByRegisterNumberTextField;    IBOutlet UIScrollView *myScrollView;}-(IBAction)saveData:(id)sender;-(IBAction)findData:(id)sender;@end

12 Kemas kini ViewController.m seperti yang ditunjukkan di bawah

#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)
  nibBundleOrNil{    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];    if (self) {        // Custom initialization    }    return self;}- (void)viewDidLoad{    [super viewDidLoad];    // Do any additional setup after loading the view from its nib.}- (void)didReceiveMemoryWarning{    [super didReceiveMemoryWarning];    // Dispose of any resources that can be recreated.}-(IBAction)saveData:(id)sender{
    BOOL success = NO;    NSString *alertString = @"Data Insertion failed";    if (regNoTextField.text.length>0 &&nameTextField.text.length>0 &&
    departmentTextField.text.length>0 &&yearTextField.text.length>0 )    {
        success = [[DBManager getSharedInstance]saveData:
        regNoTextField.text name:nameTextField.text department:
        departmentTextField.text year:yearTextField.text];    }    else{
        alertString = @"Enter all fields";    }     
    if (success == NO) {        UIAlertView *alert = [[UIAlertView alloc]initWithTitle:
        alertString message:nil        delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];        [alert show];    }}-(IBAction)findData:(id)sender{    NSArray *data = [[DBManager getSharedInstance]findByRegisterNumber:
    findByRegisterNumberTextField.text];    if (data == nil) {        UIAlertView *alert = [[UIAlertView alloc]initWithTitle:        @"Data not found" message:nil delegate:nil cancelButtonTitle:        @"OK" otherButtonTitles:nil];        [alert show];
        regNoTextField.text = @"";
        nameTextField.text =@"";
        departmentTextField.text = @"";
        yearTextField.text =@"";    }    else{
        regNoTextField.text = findByRegisterNumberTextField.text;
        nameTextField.text =[data objectAtIndex:0];
        departmentTextField.text = [data objectAtIndex:1];
        yearTextField.text =[data objectAtIndex:2];    }}#pragma mark - Text field delegate-(void)textFieldDidBeginEditing:(UITextField *)textField{    [myScrollView setFrame:CGRectMake(10, 50, 300, 200)];    [myScrollView setContentSize:CGSizeMake(300, 350)];}-(void)textFieldDidEndEditing:(UITextField *)textField{    [myScrollView setFrame:CGRectMake(10, 50, 300, 350)];}-(BOOL) textFieldShouldReturn:(UITextField *)textField{    
    [textField resignFirstResponder];    return YES;}@end

OutputSqlite_Interface

Sekarang kami akan menjalankan aplikasi. Output berikut di mana kita boleh menambah dan mencari butiran pelajar

Alat AI Hot
Undress AI Tool
Undress AI Tool

Gambar buka pakaian secara percuma

AI Clothes Remover
AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undresser.AI Undress
Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

Stock Market GPT
Stock Market GPT

Penyelidikan pelaburan dikuasakan AI untuk keputusan yang lebih bijak

Alat popular
Notepad++7.3.1
Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac
SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)