【发布时间】:2012-07-10 01:39:58
【问题描述】:
我有一个更新表格记录的简单程序
表格是“person”,有“name”和“age”两列; 插入了一些记录,如下:
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);
【问题讨论】: