2012-07-30 41 views
0

我我將使用下面的代碼,但數據的數據到數據庫在數據庫中沒有插入數據插入數據的基礎上 我用下面的代碼如何在iphone

我將數據插入到iPhone應用,但它確實不要將

我有表survey_question_master(question_id,QUESTION_TEXT,question_type)

- (void) addCoffee { 
    if(addStmt == nil) { 
     const char *sql = "insert into survey_question_master(question_text,question_type) Values(? ,?)"; 

     if(sqlite3_prepare_v2(database, sql, -1, &addStmt, NULL) != SQLITE_OK) 
      NSAssert1(0, @"Error while creating add statement. '%s'", sqlite3_errmsg(database)); 
    } 

    sqlite3_bind_text(addStmt, 1, [question_text UTF8String], -1, SQLITE_TRANSIENT); 
    sqlite3_bind_text(addStmt, 2, [question_type UTF8String], -1, SQLITE_TRANSIENT); 

    if(SQLITE_DONE != sqlite3_step(addStmt)) 
     NSAssert1(0, @"Error while inserting data. '%s'", sqlite3_errmsg(database)); 
    else 
     question_ID = sqlite3_last_insert_rowid(database); 

    //Reset the add statement. 
    sqlite3_reset(addStmt); 
} 



    - (void) addCoffee:(DataController *)coffeeObj { 

    //Add it to the database. 
    [coffeeObj addCoffee]; 
    //Add it to the coffee array. 
    [coffeeArray addObject:coffeeObj]; 
    NSLog(@"Succeessfully Added"); 
    } 
+0

如何ü讀取數據庫是否插入數據或不? – 2012-07-30 07:54:57

+0

我打開從sqlite管理器的數據庫來查看插入的數據 – user1553768 2012-07-30 07:55:46

+0

然後你是否收到錯誤消息?或者它執行但數據庫中沒有任何內容? – 2012-07-30 08:02:02

回答

0
- (NSString *) getDBPath 
{ 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory , NSUserDomainMask, YES); 
    NSString *documentsDir = [paths objectAtIndex:0]; 
    return [documentsDir stringByAppendingPathComponent:@"database.sqlite"]; 
} 

-(void)SaveData:(NSMutableArray *)insertDataArray 
{ 

    sqlite3_stmt *stmt; 
    const char *dbPath = [[self getDBPath] UTF8String]; 
    if(sqlite3_open(dbPath, &database)==SQLITE_OK) 
    { 
     NSString *insertSQL = [NSString stringWithFormat:@"insert into items (c1,c2,c3,c4 , c5 ,c6,c7,c8,c9) values (\"%@\",\"%@\",\"%@\",\"%@\",\"%@\",\"%@\",\"%@\",\"%@\",\"%@\")",[insertDataArray objectAtIndex:0],[insertDataArray objectAtIndex:1],[insertDataArray objectAtIndex:2],[insertDataArray objectAtIndex:3],[insertDataArray objectAtIndex:4],[insertDataArray objectAtIndex:5],[insertDataArray objectAtIndex:6],[insertDataArray objectAtIndex:7],[insertDataArray objectAtIndex:8]]; 

     NSLog(@"%@",insertSQL); 
     const char *insert_stmt = [insertSQL UTF8String]; 
     sqlite3_prepare_v2(database, insert_stmt, -1, &stmt, NULL); 

     if(sqlite3_step(stmt)==SQLITE_DONE) 
     { 
      NSLog(@"insert success"); 
     } 
     else 
     { 
      NSLog(@"insert un success"); 
      NSAssert1(0, @"Error: failed to prepare statement with message '%s'.", sqlite3_errmsg(database)); 
     } 
     int success=sqlite3_step(stmt); 

     if (success == SQLITE_ERROR) 
     { 
      NSAssert1(0, @"Error: failed to insert into the database with message '%s'.", sqlite3_errmsg(database)); 
     }  sqlite3_finalize(stmt); 
     sqlite3_close(database); 

    } 

}