我有一个简单的程序来更新表的记录
该表是“人”,有“姓名”和“年龄”两列;插入了一些记录,如下:
name age
tom 20
andy 30
han 25
现在我正在编写一个程序来更新表中的一行:
NSString *database=[[NSBundle mainBundle] pathForResource:@"mytable" ofType:@"sqlite"];
sqlite3_open([database UTF8String],&contactDB);
NSString *text=@"andy";
NSString *query=[NSString stringWithFormat:@"UPDATE person SET age=%d WHERE name='%@'",30,text];
sqlite3_stmt *statement;
sqlite3_prepare_v2(contactDB,[query UTF8String],-1,&statement,NULL);
sqlite3_finalize(statement);
sqlite3_close(contactDB);
程序运行良好,但数据库没有更新(我正在使用 SQLite Manager 浏览数据库)
当我尝试从数据库中读取时,它运行良好:
NSString *database=[[NSBundle mainBundle] pathForResource:@"mytable" ofType:@"sqlite"];
sqlite3_open([database UTF8String],&contactDB);
NSString *query1=[NSString stringWithFormat:@"SELECT * FROM person WHERE age=%d;",30];
sqlite3_stmt *statement;
sqlite3_prepare_v2(contactDB,[query1 UTF8String],-1,&statement,NULL);
sqlite3_step(statement);
NSString *result=[[NSString alloc] initWithUTF8String:(const char *)sqlite3_column_text(statement, 0)];
label.text=result;
sqlite3_finalize(statement);
sqlite3_close(contactDB);