2016-04-21 17 views
0
- (void)viewDidLoad { 
    // Do any additional setup after loading the view, typically from a nib. 

    NSString *docsDir; 

    NSArray *dirPaths; 

    dirPaths=NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES); 

    docsDir =[dirPaths objectAtIndex:0]; 

    databasePath=[[NSString alloc]initWithString: [docsDir stringByAppendingString:@"test2.db"]]; 

    //databasePath=[NSString stringWithFormat:[docsDir stringByAppendingPathComponent:@"test2.db"]]; 

    NSFileManager *filemgr=[NSFileManager defaultManager]; 

    if ([filemgr fileExistsAtPath:databasePath] ==NO) 
    { 
     const char *dbpath = [databasePath UTF8String]; 

     if (sqlite3_open(dbpath, &test2DB) ==SQLITE_OK) 
     { 
      char *errMSg; 

      const char *sql_stmt= "CREATE TABLE IF NOT EXISTS TESTING (ID INTEGER PRIMARY KEY AUTOINCREMENT, FIRSTNAME TEXT, LASTNAME TEXT, EMAIL TEXT, ADDRESS TEXT)"; 

      if (sqlite3_exec(test2DB, sql_stmt, NULL, NULL, &errMSg) != SQLITE_OK) 
      { 
       [email protected]"Failed To Create Table"; 
      } 
      sqlite3_close(test2DB); 
     }else{ 
      status.text [email protected]"Failed to open/create database"; 
     } 
    } 
    [super viewDidLoad]; 

} 

// Daten speichernWie fügt man Daten mit der SQLite-Datenbank ein?

-(IBAction)save:(id)sender 
{ 
    sqlite3_stmt *statment; 

    const char *dbpath =[databasePath UTF8String]; 

    if (sqlite3_open(dbpath, &test2DB) ==SQLITE_OK) { 
     NSString *insertSQL = [NSString stringWithFormat:@"INSERT INTO TESTING(Firstname,Lastname,Email,Address) VALUES (\"%@\", \"%@\", \"%@\", \%@\")",Firstname.text,Lastname.text,Email.text,Address.text]; 

     const char *insert_stmt=[insertSQL UTF8String]; 
     sqlite3_prepare_v2(test2DB, insert_stmt, -1, &statment, NULL); 

     if (sqlite3_step(statment) ==SQLITE_DONE) { 
      [email protected]"Details Added"; 
      [email protected]""; 
      [email protected]""; 
      [email protected]""; 
      [email protected]""; 
     }else 
     { 
      [email protected]"Failed to Add Details"; 
     } 
     sqlite3_finalize(statment); 
     sqlite3_close(test2DB); 
    } 
} 

Antwort

0

ändern Datenbanknamen als test2.sqlite, NSDocumentDirectory und diesen Code verwenden wird sie Ihre Daten speichern:

- (IBAction) saveData 
{ 
    sqlite3_stmt *statement; 

    const char *dbpath = [databasePath UTF8String]; 

    if (sqlite3_open(dbpath, &Information) == SQLITE_OK) 
    { 
     NSString *insertSQL = [NSString stringWithFormat: @"INSERT INTO CONTACTS (name, address, phone,imageUrl) VALUES (\"%@\", \"%@\", \"%@\",\"%@\")", name.text, address.text, phone.text,imageUrl.text]; 

     const char *insert_stmt = [insertSQL UTF8String]; 

     sqlite3_prepare_v2(Information, insert_stmt, -1, &statement, NULL); 
     if (sqlite3_step(statement) == SQLITE_DONE) 
     { 
      [email protected]"Details Added"; 
     [email protected]""; 
     [email protected]""; 
     [email protected]""; 
     [email protected]"" 
     } else { 
      status.text = @"Failed to add contact"; 
     } 
     sqlite3_finalize(statement); 
     sqlite3_close(test2); 
    } 
} 
+0

ich bereits mit diesem Code getan, aber Werte werden nicht gespeichert. Wenn ich den Code ausführe, werden keine Fehler angezeigt. Aber wenn ich die Daten eingegeben habe, dann klicke auf den Speichern Knopf, die Daten werden nicht gespeichert.wenn ich den Code ausführe "Failed to Add Details" wird auf dem Simulator angezeigt Rate, wo der Fehler ist. –

+0

hast du diese Zeile geändert sqlite3_finalize (Anweisung); sqlite3_close (test2); in Ihrem Code –

+0

funktioniert es oder nicht ?? –

1

Nicht NSDocumentationDirectory. Es ist NSDocumentDirectory.

Verwandte Themen