我使用以下方法更新带有编辑数据的SQLite表。我创建了一个编辑界面,点击表视图的每一行,从XML获取数据,它导航到一个页面,我有一个文本字段来输入编辑数据。
我在该课程中有一个“保存”按钮。我没有得到如何在该保存按钮事件处理程序中调用此方法。任何人都可以给我一些很好的教程链接或示例代码来编程编辑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 :(得分:0)
您正在使用 sqlite3_bind_text 作为字段,请确保您的表字段都不是int类型,否则请相应地进行更改。如果你可以发布sqlite3_errmsg,那就太好了。