我有一個名爲FINALORDER
的db表,它填充了一些數據,然後顯示在tableview中。當用戶點擊alertview時從sqlite數據庫中刪除一條記錄
我插入了didSelectRowAtIndexPath
內的alertview
..
alert=[[UIAlertView alloc]initWithTitle:@"Cancel Order" message:@"Do you want to cancel the order" delegate:self cancelButtonTitle:@"dismiss" otherButtonTitles:@"Ok",nil];
[alert show];
[alert release];
和委託方法如下:
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
const char *dbpath = [databasePath UTF8String];
sqlite3_stmt *statement;
if(buttonIndex==1)
{
NSString *deleteSQL = @"DELETE FROM FINALORDER WHERE itemname=?";
if (sqlite3_prepare_v2(database, [deleteSQL UTF8String], -1, &statement, NULL) != SQLITE_OK)
NSLog(@"%s error preparing %s", __FUNCTION__, sqlite3_errmsg(database));
if (sqlite3_bind_text(statement, 1, [itemname UTF8String], -1, NULL) != SQLITE_OK)
NSLog(@"%s error binding %s", __FUNCTION__, sqlite3_errmsg(database));
if (sqlite3_step(statement) != SQLITE_DONE)
NSLog(@"%s error executing %s", __FUNCTION__, sqlite3_errmsg(database));
if (sqlite3_finalize(statement) != SQLITE_OK)
NSLog(@"%s error finalizing %s", __FUNCTION__, sqlite3_errmsg(database));
}
}
我怎麼得到它可以在取代項目名稱問號的地方?請注意,我的數據庫包含以下字段itemname,quantity,totalcost
你爲什麼不使用CoreData?你知道這是一個下面的SQLight數據庫。它使用起來也更容易,並且最終編寫的代碼更少以管理數據。 – AppHandwerker
我已經在詛咒自己了.. ..但是,我已經走了很遠,我的項目回頭看起來似乎不是一個選項.. :-( – BoredToDeath
我會爭辯說,它總是一個選項,它會讓你生活在從長遠來看,這是非常容易的,至少你已經定義了數據模型,所以在CoreData中實現它應該是一件輕而易舉的事情,這裏有很多示例供你跟隨,以及來自Apple的一些很好的示例代碼 – AppHandwerker