我已经创建了一个按钮来删除我的数组中的所有对象,这些对象显示在我的tableView中.然后它重新加载数据,tableview为空.但是如何从SQLite数据库中删除所有数据,而不仅仅是数组呢?现在重新启动时会出现数据.我试过这个:
按钮无效:
- (void) deleteAllButton_Clicked:(id)sender {
[appDelegate removeAllBooks:nil];
[self.tableView reloadData];
}
Run Code Online (Sandbox Code Playgroud)
Appdelegate无效:
-(void) removeAllBooks:(Book *)bookObj {
//Delete it from the database.
[bookObj deleteAllBooks];
//Remove it from the array.
[bookArray removeAllObjects];
}
Run Code Online (Sandbox Code Playgroud)
删除Book.m中的语法
- (void) deleteAllBooks {
if(deleteStmt == nil) {
const char *sql = "WHAT DO I HAVE TO DO TO DELETE ALL THE ROWS?";
if(sqlite3_prepare_v2(database, sql, -1, &deleteStmt, NULL) != SQLITE_OK)
NSAssert1(0, @"Error while creating delete statement. '%s'", sqlite3_errmsg(database));
}
//When binding parameters, index starts from 1 and not zero.
sqlite3_bind_int(deleteStmt, 1, bookID);
if (SQLITE_DONE != sqlite3_step(deleteStmt))
NSAssert1(0, @"Error while deleting. '%s'", sqlite3_errmsg(database));
sqlite3_reset(deleteStmt);
}
Run Code Online (Sandbox Code Playgroud)
ang*_*son 20
那么,正常的SQL语法是:
DELETE FROM tablename
Run Code Online (Sandbox Code Playgroud)
如果你有一个标准的主要id列(你应该),你可以做到
DELETE FROM tablename WHERE id > -1;
Run Code Online (Sandbox Code Playgroud)
这将删除表中的所有行,因为没有小于0的id.
| 归档时间: |
|
| 查看次数: |
31770 次 |
| 最近记录: |