реализовать просмотр таблицы для отображения данных базы данных - PullRequest
1 голос
/ 21 июня 2011

Я делаю небольшое приложение для iPhone, в котором реализовал концепцию базы данных, которая используется для хранения имени, номера контакта, идентификатора электронной почты.Я хочу, чтобы всякий раз, когда я сохранял контакт, пользователь отображал его в виде таблицы.В - (IBAction) retriveall: (id) sender action Я извлекаю все данные из базы данных и сохраняю их в массив.Теперь я хочу отобразить все данные в виде таблицы.

Как я могу это сделать?Пожалуйста, помогите мне.

-(IBAction)retriveall:(id)sender
{
    [self retrive2];
    for (int i =0; i< [namearray count]; i++) 
    {
        NSLog(@"Name is:%@",[namearray objectAtIndex:i]);
        NSLog(@"Password is:%@",[passarray objectAtIndex:i]);
    }
}



-(IBAction)retrive:(id)sender
{
    [self retrive1];
    two.text = databasecolorvalue;
    UIAlertView  *favAlert=[[UIAlertView alloc] initWithTitle:@"" message:@"Retrived" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];        
    [favAlert show];
    [favAlert release]; 
}

-(void)retrive1
{

    databaseName = @"med.sqlite";

    NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDir = [documentPaths objectAtIndex:0];
    databasePath = [documentsDir stringByAppendingPathComponent:databaseName];

    @try {

        if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) {

            const char *sqlStatement="select pswd from Login where username = ? ";
            sqlite3_stmt *compiledStatement;

            if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK) {

                // Loop through the results and add them to the feeds array
                // Create a new animal object with the data from the database
                sqlite3_bind_text(compiledStatement, 1, [one.text UTF8String], -1, SQLITE_TRANSIENT);

                while(sqlite3_step(compiledStatement) == SQLITE_ROW) {

                    databasecolorvalue  =[NSString stringWithUTF8String:(char*)sqlite3_column_text(compiledStatement,0)];

                }

            }
            // Release the compiled statement from memory
            sqlite3_finalize(compiledStatement);

        }
        sqlite3_close(database);
    }
    @catch (NSException * ex) {
        @throw ex;
    }
    @finally {
    }


}

Ответы [ 2 ]

0 голосов
/ 21 июня 2011

Вам необходимо создать объект со всеми данными и реализацией протокола UITableViewDataSource для табличного представления и установить его в свойстве dataSource свойства TableView.После вызова метода UITableView -(void)reloadData;

0 голосов
/ 21 июня 2011

Вы должны объявить изменяемый массив как переменную экземпляра, например,

NSMutableArray * colors;

Инициализируйте его в методе viewDidLoad, а затем измените метод retrive1 для добавления в массив цветов.

-(void)retrive1
{
    /* Clearing existing values for newer ones */
    [colors removeAllObjects]

    /* Get database path */

    @try {
          [..]
                while(sqlite3_step(compiledStatement) == SQLITE_ROW) { 
                    [colors addObject:[NSString stringWithUTF8String:(char*)sqlite3_column_text(compiledStatement,0)]];
                }

          [..]
    }
    @catch (NSException * ex) { @throw ex; }
    @finally { }
}

И вам нужно будет реализовать остальные методы табличного представления обычным способом, используя массив в качестве источника.

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