我在标签中有一些值,并且我试图将它存储在我的数据库中,但是当我点击保存按钮时,它不会保存并记录消息无法保存。数据库已正确制作但数据未存储。我保存数据的代码就是这个,
- (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);
}
}
答案 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查询。