我使用此代码并且总是说“Error añadir contacto”与“Error 添加联系人”相同,这是怎么回事?我的数据库是:
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);
仅在创建 DB 时执行。
再次感谢。