2012-11-13 93 views
-1

我正在學習如何使用SQLite數據庫,並且在將數據存儲在表中,然後在檢索它並存儲到新表中時遇到問題。將數據存儲在一個SQLite表中,然後檢索並將其存儲到另一個

我已經創建我的第一表(食物類型),其執行以下操作:

CREATE TABLE FoodType(
    type_id integer, 
    Category_id integer, 
    Type text, 
    Quantity text, 
    NumberCalories text 
) 

予從該表中的圖控制器檢索數據和在標籤中顯示的數據。現在我想將數據存儲到另一個表(訂單),我已經爲這樣的創建:

CREATE TABLE Order (
    id integer NOT NULL PRIMARY KEY AUTOINCREMENT, 
    type-meal text, 
    Quantity text, 
    NumCal text 
) 

這是我想使用將數據插入到第二個表的代碼:

NSString *insertSQL = [NSString stringWithFormat: 
    @"INSERT INTO Order (type-meal,Quantity,NumCal) VALUES (\"%@\",\%@\",\"%@\")",_typeLbl.text,_Quantity.text,_Number.text]; 

謝謝

+1

什麼是你的問題是什麼呢?你遇到了什麼錯誤? – Perception

+0

無法添加聯繫人 – Fad

+0

請顯示確切的錯誤信息。 –

回答

1

「Order」是SQL中的保留字。嘗試調用其他表。

+0

謝謝你trojanfoe,我重命名爲SavedD,但我沒有得到價值 – Fad

+0

@Fad好了,顯示實際插入的代碼。 – trojanfoe

1

嘗試使用屬性「REPLACE INTO」而不是「INSERT INTO」

0

不能使用標識符-字符沒有引用它們。

嘗試type_meal"type-meal"

0

這是我所有的代碼,我用它來保存在第二的tableView具有類的類型的數據,沒有什麼商店的數據庫,但如果我確定TYPE_ID = 4要花第四類第一類的唯一:
- (IBAction爲)保存數據:(ID)發送方{ @try { 如果(sqlite3_open([[AppDelegate中getDBPath] UTF8字符串],&數據庫)== SQLITE_OK){

  NSString *statement= [NSString stringWithFormat: @"INSERT INTO SavedD (type_meal,Quantity,NumCal) SELECT Type,Quantity,NumberCalories FROM FoodType Where type_id=?" ]; 
     const char *sqlstatement = [statement UTF8String]; 

       if (sqlite3_prepare_v2(database, sqlstatement, -1, &compiledStatement, NULL)== SQLITE_OK) 
       { 
        NSLog(@"Data inserted Successfully"); 
        // UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"OK" message:@"Record added" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
        // [alert show]; 

        sqlite3_bind_text(compiledStatement, 1, [mealType UTF8String], -1, SQLITE_TRANSIENT); 

        sqlite3_bind_text(compiledStatement, 2, [Quantit UTF8String], -1, SQLITE_TRANSIENT); 
        sqlite3_bind_text(compiledStatement, 3, [NumofCal UTF8String], -1, SQLITE_TRANSIENT); 

        NSLog(@"%@",mealType); 
        // NSLog(@"%@",PersonId); 
        NSLog(@"%@",Quantit); 
        NSLog(@"%@",NumofCal); 

        int iResult = sqlite3_step(compiledStatement); 
        NSLog(@"%d",iResult); 
        if (SQLITE_DONE!=iResult) 
         NSAssert1(0,@"Error when inserting  %s",sqlite3_errmsg(database)); 

       } 
       else { 

        UIAlertView *AlertOK = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Data not inserted22" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; 

        [AlertOK show]; 

       } 

       sqlite3_finalize(compiledStatement); 

      } 
      sqlite3_close(database); 
     } 



     @catch (NSException * e) { 
      NSLog(@"The Record already inserted"); 
     } 

}

檢查成功插入數據後。 。但「mealType」的價值觀,以「Quantit」和「NumofCal」是空..

相關問題