如何添加&从SQLite数据库中删除数据?

时间:2011-10-25 16:49:01

标签: ios sqlite tableview

我已尝试按照此页面上的指南编写SQLite教程?删除数据| iPhone SDK文章,但我无法理解如何在我的应用程序中实现它,因为我没有在AppDelegate中声明NSMutableArray,因为它在教程中 有人可以看看并指导我完成它吗?我希望能够从tableview和数据库中删除行,并且还能够添加数据。 这是我的应用:http://ge.tt/9JNVd89?c 即使是最轻微的小费也会受到赞赏。

1 个答案:

答案 0 :(得分:0)

可能需要更多关于您当前知识水平的信息。你到底有多远?你能连接并从中读取数据吗?你了解SQL的工作原理吗?

如果您想从数据库中检索数据,可以编写如下内容:

+ (NSArray *)getAllUsers
{
    sqlite3 *db = **However you get your db conn**
    sqlite3_stmt *statement = nil;
    NSMutableArray *userArray = [NSMutableArray array];

    NSString *fullQuery = @"SELECT * FROM User";

    const char *sql = [fullQuery UTF8String];

    if(sqlite3_prepare_v2(db, sql, -1, &statement, NULL)!=SQLITE_OK)
        NSAssert1(0, @"Error preparing statement '%s'", sqlite3_errmsg(db));
    else
    {
        while(sqlite3_step(statement) == SQLITE_ROW)
        {
            User *currentUser = [[User alloc] init];

            [User setPk:[NSString stringWithUTF8String:(const char*)sqlite3_column_text(statement, 0)]];
            [User setName:[NSString stringWithUTF8String:(const char*)sqlite3_column_text(statement, 1)]];
            [User setAge:[NSString stringWithUTF8String:(const char*)sqlite3_column_text(statement, 2)]];

            [userArray currentUser];
            [currentUser release];
        }
    }
    sqlite3_finalize(statement);
    sqlite3_close(db);

    return [NSArray arrayWithArray:userArray]; 
}

如果你想在其中插入数据:

+ (void)insertUser:(NSString *)username
{

    sqlite3 *db = **However you get your db conn**
    sqlite3_stmt *statement = nil;

    NSString *fullQuery = [NSString stringWithFormat:@"INSERT INTO User (userName) VALUES (%@);", username];
    const char *sql = [fullQuery UTF8String];

    sqlite3_prepare_v2(db, sql2, -1, &statement, NULL);
    if(sqlite3_step(statement) == SQLITE_DONE)
    {
        NSLog(@"User inserted");
    }
    sqlite3_finalise(statement);
    sqlite3_close(db);
}

如果您在将数据库放入应用程序并连接到它时遇到问题,请告诉我,我也可以发布一些代码。

希望有所帮助:)