我正在使用sqlite数据库,正在表视图中显示数据,当我删除表视图中的行时,该数据也应在我的数据库表中删除。我写查询删除,但它不会删除我的sqlitedb表中。
这是我的代码
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete)
{
if (btnCliked==NO)
{
[videoTitleArrya removeObjectAtIndex:indexPath.row];
[videoImagesLinksDataArray removeObjectAtIndex:indexPath.row];
NSLog(@"videoTitleArrya%@",videoTitleArrya);
NSLog(@"videoImagesLinksDataArray%@",videoImagesLinksDataArray);
NSUInteger temp=[[videoTitleArrya objectAtIndex:indexPath.row] intValue];
[self deleteDataBaseRow:temp];
}
[tableView reloadData];
}
else if (editingStyle == UITableViewCellEditingStyleInsert)
{
}
}
-(void)deleteDataBaseRow:(NSUInteger)RowNumber
{
if (sqlite3_open([dbPathString UTF8String], &DB)==SQLITE_OK)
{
NSLog(@"dataBaseOpen");
NSString *Query = [NSString stringWithFormat:@"DELETE FROM mytablename where
id ='%@'",RowNumber];
const char * deletequery = [Query UTF8String];
if (sqlite3_prepare_v2(DB, deletequery, -1, &statement, NULL) != SQLITE_OK)
{
NSLog(@"deletedSuccessfully");
}
sqlite3_close(DB);
}}
最佳答案
我想从您的代码中解决一些问题,如果其他所有条件都正确,它将从数据库中删除记录。
看这行:
NSString *Query = [NSString stringWithFormat:@"DELETE FROM mytablename where
id ='%@'",RowNumber];
在这里,您将
%@
运算符用于int
变量RowNumber
。替换上面的行NSString *strRowNumber = [NSString stringWithFormat:@"%d",RowNumber];
NSString *Query = [NSString stringWithFormat:@"DELETE FROM mytablename where id ='%@'",strRowNumber];
要观察的第二件事是下面的行:
if (sqlite3_prepare_v2(DB, deletequery, -1, &statement, NULL) != SQLITE_OK)
{
NSLog(@"deletedSuccessfully");
}
在这里,您可以为
NSLog
打印!= SSQLITE_OK
。因此,以上逻辑表明,从表中删除行时出错时,您将打印成功消息。这是一个矛盾,如果您在上述条件下进行了任何操作,由于比较错误,它将不会生效。将以上条件替换为以下内容:
if (sqlite3_prepare_v2(database, query_stmt, -1, &statement, NULL) == SQLITE_OK) {
if (sqlite3_step(statement) == SQLITE_DONE) {
sqlite3_reset(statement);
}
else {
const char *error = sqlite3_errmsg(database);
strError = [NSString stringWithUTF8String:error];
NSLog(@"Error : %@",strError);
}
} else {
NSLog(@"Error while deleting record");
}
关于ios - 删除数据库中的数据时出现问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26710539/