Извлечение базы данных SQLite в текстовые поля из определенной строки - PullRequest
1 голос
/ 05 апреля 2011

Я пытаюсь подключиться к базе данных SQLite и у меня есть метод, который указывает конкретную строку из базы данных (первый столбец в базе данных - «ID» и является первичным ключом), затем извлекает информацию из нескольких других столбцовв этой строке и отображать их в текстовых полях.

Это будет использоваться для простой викторины, которую я делаю;Позже я сделаю случайный метод, который будет выбирать строку случайным образом.

Я боролся с этой проблемой в течение нескольких недель, и я прошел через множество учебных пособий, но все они имеют дело с отображением данных втабличное представление, я хочу отобразить его просто в текстовых полях в приложении на основе просмотра.Я довольно запутался в этом вопросе, поэтому любая помощь, начиная с загрузки базы данных и до отображения данных в текстовых полях, была бы БОЛЬШОЙ ЦЕНА!

Спасибо!

1 Ответ

0 голосов
/ 05 апреля 2011

Ссылка на libsqlite3.dylib (и импорт <sqlite3.h>) для доступа к возможностям SQLite. Есть несколько легких интерфейсов Objective-C, и я предлагаю вам выбрать один. В этом примере я использую fmdb (https://github.com/ccgus/fmdb), чтобы прочитать имена людей из ранее созданной базы данных:

NSString* docsdir = [NSSearchPathForDirectoriesInDomains( 
    NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString* dbpath = [docsdir stringByAppendingPathComponent:@"people.db"];
FMDatabase* db = [FMDatabase databaseWithPath:dbpath];
if (![db open]) {
    NSLog(@"Ooops");
    return;
}
FMResultSet *rs = [db executeQuery:@"select * from people"];
while ([rs next]) {
    NSLog(@"%@ %@", 
        [rs stringForColumn:@"firstname"], 
        [rs stringForColumn:@"lastname"]);
}
[db close];
/* output:
Snidely Whiplash
Dudley Doright
*/

Это иллюстрирует общение с базой данных; Знание SQL зависит от вас (и это другая тема). Вы можете включить ранее созданный файл SQLite в свой пакет приложения, но вы не можете записать его туда; решение состоит в том, чтобы скопировать его из комплекта приложения в другое место, например в папку «Документы», прежде чем начать работу с ним.

Наконец, чтобы поместить строки в текстовые поля (UITextField), установите их свойство text. Так, например, вместо показанного выше цикла while, где я записываю результаты базы данных, я мог бы использовать эти результаты для установки значений текстового поля:

myTextField.text = [rs stringForColumn:@"firstname"];
myOtherTextField.text = [rs stringForColumn:@"lastname"];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...