在目标c中的sqlite问题中保存数据

时间:2017-12-14 10:03:41

标签: ios sqlite

我在标签中有一些值,并且我试图将它存储在我的数据库中,但是当我点击保存按钮时,它不会保存并记录消息无法保存。数据库已正确制作但数据未存储。我保存数据的代码就是这个,

- (IBAction)btnSave:(id)sender {

sqlite3_stmt    *statement;

const char *dbpath = [databasePath UTF8String];

if (sqlite3_open(dbpath, &contactDB) == SQLITE_OK)
{
    NSString *insertSQL = [NSString stringWithFormat: @"INSERT INTO data (ID, ALERT, XREF,TEXT,GRAPHIC,PROMPT,VOICE) VALUES (\"%@\", \"%@\", \"%@\",\"%@\",\"%@\",\"%@\",\"%@\")", _lblID.text, _lblAlert.text, _lblxref.text,_lbltext.text, _lblgraphic.text, _lblprompt.text,_lblvoice.text];
    NSLog(@"DDD %@",insertSQL);

    const char *insert_stmt = [insertSQL UTF8String];

    sqlite3_prepare_v2(contactDB, insert_stmt, -1, &statement, NULL);
    if (sqlite3_step(statement) == SQLITE_DONE)
    {
        _lblstatus.text = @"Contact added";

    } else {
        _lblstatus.text = @"Failed to add contact";
    }
    sqlite3_finalize(statement);
    sqlite3_close(contactDB);
}
}

1 个答案:

答案 0 :(得分:0)

if (sqlite3_step(statement) == SQLITE_DONE){
    _lblstatus.text = @"Contact added";
} else {
     NSLog(@"prepare failed: %s", sqlite3_errmsg(contactDB));
    _lblstatus.text = @"Failed to add contact";
}

<强> 1。在代码中替换此代码段以打印错误消息。它可以帮助您找到确切的问题。

<强> 2。可能是您在语法错误中形成的SQL查询。