Как добавить и удалить данные из базы данных SQLite? - PullRequest
0 голосов
/ 25 октября 2011

Я пытался следовать руководству на этой странице. Учебное пособие по SQLite?Удаление данных |Статьи по iPhone SDK, но я просто не могу понять, как реализовать это в моем приложении, потому что я NSMutableArray не объявлен в AppDelegate, как это есть в учебнике. Может кто-нибудь взглянуть и провести меня через него?Я хочу иметь возможность удалять строки из таблицы и базы данных, а также иметь возможность добавлять данные.Вот мое приложение: http://ge.tt/9JNVd89?c Буду признателен даже за малейший совет.

1 Ответ

0 голосов
/ 26 октября 2011

Возможно, потребуется немного больше информации о вашем текущем уровне знаний. Как далеко вы продвинулись? Вы можете подключиться и прочитать данные с него? Вы понимаете, как работает 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);
}

Если у вас возникли проблемы с подключением базы данных к вашему приложению и подключением к ней, дайте мне знать, и я также могу опубликовать часть этого кода.

Надеюсь, это поможет:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...