已编辑: - 这就是我所实现的: -
- (void) Delete_LoginData {
sqlite3 *database;
if(sqlite3_open([self.databasePath UTF8String], &database) == SQLITE_OK)
{
const char *sql = "DELETE FROM Login";
sqlite3_stmt *statement;
if(sqlite3_prepare_v2(database, sql,-1, &statement, NULL) == SQLITE_OK)
{
sqlite3_reset(statement);
}
}
}
我想一键删除数据库中的所有行。我已经实现了以下方法: -
- (void) Delete_LoginData {
sqlite3 *database;
if(sqlite3_open([self.databasePath UTF8String], &database) == SQLITE_OK) {
const char *sql = "DELETE * FROM Login";
sqlite3_stmt *statement;
statement = [self PrepareStatement:sql];
// int a1 = sqlite3_bind_int(statement, 1, 1);
sqlite3_step(statement);
sqlite3_reset(statement);
}
}
-(sqlite3_stmt*) PrepareStatement:(const char *)sql{
// Setup the database object
sqlite3 *database;
// Init the animals Array
// Open the database from the users filessytem
if(sqlite3_open([self.databasePath UTF8String], &database) == SQLITE_OK) {
// Setup the SQL Statement and compile it for faster access
const char *sqlStatement = sql;
sqlite3_stmt *compiledStatement;
if(sqlite3_prepare_v2(database, sqlStatement,-1, &compiledStatement, NULL) == SQLITE_OK) {
//NSLog(@"COMPILED STATEMENT: %@",compiledStatement);
return compiledStatement;
}
}
return nil;
}
但它不起作用。 这句话我得0X0 = [self PrepareStatement:sql]; 在delete_logindata方法中。
如何解决这个问题。 对此有任何解决方案吗?
答案 0 :(得分:1)
请更改您的方法,如:
- (void) Delete_LoginData
{
sqlite3 *database;
if(sqlite3_open([self.databasePath UTF8String], &database) == SQLITE_OK)
{
const char *sql = "DELETE FROM Login";
sqlite3_stmt *statement;
if(sqlite3_prepare_v2(database, sql,-1, &statement, NULL) == SQLITE_OK)
{
sqlite3_step(statement);
}
}
}
在您的代码中,您将打开数据库两次。在第二种方法中,您将打开已打开的数据库! 我不知道这是实际问题,但我建议不要这样做。
答案 1 :(得分:1)
写const char *sql = "DELETE FROM Login"
;而不是const char *sql = "DELETE * FROM Login";
答案 2 :(得分:1)
更改你的const char * sql
const char *sql = "DELETE * FROM Login";
使用此
进行更改const char *sql = "DELETE FROM Login";
答案 3 :(得分:0)
我不知道它的正确答案是什么。 但我可以建议你这个链接http://klanguedoc.hubpages.com/hub/IOS-5-SDK-Database-Insert-Update-Delete-with-SQLite-and-Objective-C-C-How-To可能会对你有帮助。