[英]How to delete data from sqlite
我創建了一個包含三個條目名稱,地址和電話號碼的表格。 現在我想根據名稱文本字段中輸入的名稱刪除數據。 我成功地做了這個,但問題是如果我輸入一個不在我的數據庫標簽中的名稱仍然顯示'聯系人已刪除'...這是我的代碼
-(void)deleteContact{
const char *dbPath=[databasePath UTF8String];
sqlite3_stmt *statement;
if (sqlite3_open(dbPath, &contactDB)==SQLITE_OK)
{
NSString *querySQL=[NSString stringWithFormat:@"delete from
contacts where name=\"%@\"",name.text];
const char *query_stmt=[querySQL UTF8String];
sqlite3_prepare_v2(contactDB, query_stmt,-1,&statement, NULL);
(sqlite3_step(statement)==SQLITE_OK);
status.text=@"Contact Deleted";
name.text=@"";
address.text=@"";
phone.text=@"";
sqlite3_finalize(statement);
}
sqlite3_close(contactDB);
[name resignFirstResponder];
}
從YourTable中刪除name =“NameToDelete”
將從表YourTable中刪除字段名稱等於NameToDelete的所有記錄。
即使沒有要刪除的內容,刪除也沒問題。 如果您需要知道是否有任何要刪除的內容,請檢查此項。
NSString *sql = [NSString stringWithFormat:@"select count (*) from contacts where name=\"%@\"", name.text];
sqlite3_stmt *stmt;
int res = sqlite3_prepare_v2(database, [sql UTF8String], -1, &stmt, NULL);
if (res != SQLITE_OK) {
NSLog(@"sqlite3_prepare_v2() failed");
return;
}
int count = 0;
if (sqlite3_step(stmt) == SQLITE_ROW) {
count = sqlite3_column_int(stmt, 0);
}
sqlite3_finalize(stmt);
if (count == 0) {
// nothing to delete, do whatever you like
} else {
// do real delete
// your code for that seems to be OK
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.