gpt4 book ai didi

iphone - 如何从SQLite删除数据

转载 作者:行者123 更新时间:2023-12-03 18:31:17 24 4
gpt4 key购买 nike

我创建了一个表,其中包含三个条目名称,地址和电话号码。
现在,我想根据我在名称文本字段中键入的名称删除数据。我成功完成了此操作,但问题是,如果我键入的名称不在数据库标签中,但仍显示“联系人已删除” ...这是我的代码

   -(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];
}

最佳答案

即使没有要删除的内容,删除也可以。
如果您需要知道是否有任何要删除的内容,则应进行检查。

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
}

关于iphone - 如何从SQLite删除数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7401962/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com