无法使用ios在SQLite中插入数据

无法使用ios在SQLite中插入数据,ios,xcode,sqlite,insert,xcode4.5,Ios,Xcode,Sqlite,Insert,Xcode4.5,我使用这个代码,总是说“Error añadir contacto”与“Error adding the contact”相同,怎么了?我的数据库是: CREATE TABLE IF NOT EXISTS Contacto (id INTEGER PRIMARY KEY AUTOINCREMENT, nombre TEXT, direccion TEXT, telefono TEXT) 我的代码是: -(IBAction)addContacto { const char *dbpath

我使用这个代码,总是说“Error añadir contacto”与“Error adding the contact”相同,怎么了?我的数据库是:

CREATE TABLE IF NOT EXISTS Contacto (id INTEGER PRIMARY KEY AUTOINCREMENT, nombre TEXT, direccion TEXT, telefono TEXT)
我的代码是:

-(IBAction)addContacto
{
    const char *dbpath = [_rutaDB UTF8String];
    sqlite3_stmt *statement;
    if (sqlite3_open(dbpath, &_db) == SQLITE_OK)
    {
        NSString *consulta = [NSString stringWithFormat:@"INSERT INTO Contacto (nombre, direccion, telefono) VALUES (\"%@\",\"%@\",\"%@\")",_nomb.text,_dir.text,_tlf.text];
        const char *insert_stmt = [consulta UTF8String];
        sqlite3_prepare_v2(_db, insert_stmt, -1, &statement, NULL);
        if (sqlite3_step(statement) == SQLITE_DONE)
        {
            _status.text = @"Contacto añadido.";
            _status.textColor = [UIColor greenColor];
            sqlite3_finalize(statement);
        }
        else
        {
            _status.text = @"Error añadir contacto.";
            _status.textColor = [UIColor redColor];
        }
        sqlite3_finalize(statement);
        sqlite3_close(_db);
    }
}
谢谢你的帮助

PD:创建的表是正常的,我插入了一个默认条目并工作:

                const char *sql_insert = "INSERT INTO Contacto (nombre, direccion, telefono) VALUES ('Pepe', 'Avila 34', '928776622')";
            sqlite3_exec(_db,sql_insert, NULL, NULL, &errMsg);
仅在创建数据库时执行


再次感谢。

更改此行_status.text=[NSString stringWithFormat@“Error añadir contacto.”%s',sqlite3_errmsg(_db)];让我知道你在日志中得到了什么请记录
咨询
并检查查询。同时检查
如果(qlite3\u prepare\u v2(\u db,insert\u stmt,-1,&statement,NULL)=SQLITE\u OK)
@rokimoki它很简单,您不存在表Contacto。如果您最近创建了此表,则需要删除应用程序并重新运行它。如果你的问题得到解决,请告诉我。@rokimoki不要紧,快乐地模仿。:)一般情况下(我确信有例外),您应该在应用程序委托中,在
didfishlaunchingwithoptions
中初始化DB。这样,应用程序的每个部分都可以使用它。