2011-06-09 152 views
1

我正在使用以下方法更新带编辑数据的SQLite表。我编辑屏幕的方式是,通过单击表格视图的每一行(从XML获取数据),它会导航到一个页面,在该页面中有一个文本字段可输入编辑的数据。以编程方式编辑SQLite数据库中的数据

我在该类中有一个“保存”按钮。我没有得到如何在保存按钮事件处理程序中调用此方法。任何人都可以给我一些很好的教程链接或示例代码以编程方式编辑SQLite数据?

- (void) saveUpdatedStudentData { 
    if(updateStmt == nil) { 
     const char *sql = "update tbl_Students Set StudentName = ?,Age =?,Gender =?,DOB =?,StudentID =?,BloodGroup =?,Address =?,Class =?,Section =?,Stream =?,LastName =?,MiddleName =? Where tbl_ID = ?"; 

     if(sqlite3_prepare_v2(database, sql, -1, &updateStmt, NULL) != SQLITE_OK) { 
      NSAssert1(0, @"Error while creating update statement. '%s'", sqlite3_errmsg(database)); 
     } 

     sqlite3_bind_text(updateStmt, 1, [strstudentName UTF8String], -1, SQLITE_TRANSIENT); 
     sqlite3_bind_text(updateStmt, 2, [strAge UTF8String], -1, SQLITE_TRANSIENT); 
     sqlite3_bind_text(updateStmt, 3, [strGender UTF8String], -1, SQLITE_TRANSIENT); 
     sqlite3_bind_text(updateStmt, 4, [strDOB UTF8String], -1, SQLITE_TRANSIENT); 
     sqlite3_bind_text(updateStmt, 5, [strStudentID UTF8String], -1, SQLITE_TRANSIENT); 
     sqlite3_bind_text(updateStmt, 6, [strBloodGroup UTF8String], -1, SQLITE_TRANSIENT); 
     sqlite3_bind_text(updateStmt, 7, [strAddress UTF8String], -1, SQLITE_TRANSIENT); 
     sqlite3_bind_text(updateStmt, 8, [strClass UTF8String], -1, SQLITE_TRANSIENT); 
     sqlite3_bind_text(updateStmt, 9, [strSection UTF8String], -1, SQLITE_TRANSIENT); 
     sqlite3_bind_text(updateStmt, 10,[strStream UTF8String], -1, SQLITE_TRANSIENT); 
     sqlite3_bind_text(updateStmt, 11,[strStuMiddleName UTF8String], -1, SQLITE_TRANSIENT); 
     sqlite3_bind_text(updateStmt, 12,[strLastName UTF8String], -1, SQLITE_TRANSIENT); 

     if(SQLITE_DONE != sqlite3_step(updateStmt)) 
      NSAssert1(0, @"Error while updating. '%s'", sqlite3_errmsg(database)); 

     sqlite3_reset(updateStmt); 


    } 
} 

回答

0

您正在使用sqlite3_bind_text的领域,请确保您没有表中的字段是整型的,否则做出相应的变化。如果你可以发布sqlite3_errmsg,那会很棒。

相关问题