我编写了SQLITE insert查询,以将一些数据插入到sqlite数据库表中。但是现在我试图在sqlite表中添加一个新列,并将新值插入到该列中。因此,每当我试图更新我的数据库表时,它每次都应该创建一个新列,并更新并给我插入的新值。下面是我的更改和更新代码,我做的点击一个按钮。
-(void)updateStatusData:(NSString *)txt {
sqlite3_stmt *statement;
dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
docsDir = [dirPaths objectAtIndex:0];
databasePath = [docsDir stringByAppendingPathComponent:@"db.sqlite"];
NSLog(@"%@",databasePath);
if (sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK)
{
NSString *updateSQL = [NSString stringWithFormat:@"ALTER TABLE STATUS ADD COLUMN newcolumn; UPDATE STATUS SET newcolumn=%@ WHERE rowid=1",txt];
const char *update = [updateSQL UTF8String];
NSLog(@"update statmnt %s",update);
sqlite3_prepare_v2(database, update, -1, &statement, NULL);
if (sqlite3_step(statement) == SQLITE_DONE)
{
sqlite3_bind_text(statement, 1, [txt UTF8String], -1, SQLITE_TRANSIENT);
NSLog(@" Status Results Updated Successfully");
} else {
NSLog(@"error %s",sqlite3_errmsg(database));
}
sqlite3_finalize(statement);
sqlite3_close(database);
}
}我的新列名是新列,它应该保存的值在'txt‘中。我的问题是,每当我运行这段代码时,我都会在sqlite数据库表中插入一个新列。但是插入的值对于新列是空的。当您在WHATSAPP上更新状态时,代码应该按照您的方式运行,它保存更新的状态.请帮帮我我做错了什么。任何帮助都是非常感谢的。
发布于 2016-06-04 13:36:13
不要同时运行这两个查询。创建两个单独的查询,一个用于添加列,另一个用于更新表。所以运行两条不同的语句而不是一条。
https://stackoverflow.com/questions/37630415
复制相似问题