2015-03-11 1 views
1

Добавлены изображения как NSData в базе данных успешно. Но пока я возвращаю NSData, чтобы UIImage не работал. Приведем следующие кодировки, которые я использовал для получения базы данных при любой ошибке. enter image description hereКак показать значение NSData в представлении UIImage при восстановлении базы данных

Здесь я использовал первичный ключ, чтобы принести правильное изображение представлено в конкретной записи:

-(void)ShowImagesinImageView{ 

    NSLog(@"Loaded in productlist"); 
    NSLog(@"Primary Key of Expenses ID=%@",primarykeyID); 

    proID  = [[NSMutableArray alloc] init]; 
    NSInteger proeditid = [primarykeyID integerValue]; 
    int len = 0; 

    NSString *queryStr = [NSString stringWithFormat:@"select image from selection_tbl where expenses_id=?"]; 
    Dataware *dbsql = [[Dataware alloc] initDataware]; 
    sqlite3_stmt *sqlStmt=[dbsql OpenSQL:[queryStr UTF8String]]; 

    Dataware *DB = [[Dataware alloc]initDataware]; 
    sqlite3_stmt *stmt=[DB OpenSQL:[queryStr UTF8String]]; 
    if(sqlStmt != nil) 
     while(sqlite3_step(sqlStmt) == SQLITE_ROW) 
     { 
      len = sqlite3_column_bytes(stmt, 0); 
      NSData *imagData = [[NSData alloc] initWithBytes: sqlite3_column_blob(stmt, 0) length: len]; 

      sqlite3_bind_int(stmt,1, (int)proeditid); 

      UIImage *img = [[UIImage alloc] initWithData:imagData]; 
      imageView.image = img; 

     } 
    [dbsql CloseSQL]; 

    [tblview reloadData]; 

} 
+0

Пожалуйста, расскажите мне, в чем проблема. –

+0

сообщение об ошибке также если у вас есть. –

+0

@SumitGarg не отображает изображение в представлении изображения –

ответ

0

Это поможет

NSString *queryStr = [NSString stringWithFormat:@"select image from selection_tbl where expenses_id=%ld",(long)proeditid]; 

    Dataware *dbsql = [[Dataware alloc] initDataware]; 
    sqlite3_stmt *sqlStmt=[dbsql OpenSQL:[queryStr UTF8String]]; 

    if(sqlStmt != nil) 
     while(sqlite3_step(sqlStmt) == SQLITE_ROW) 
     { 
      NSData *dataForCachedImage = [[NSData alloc] initWithBytes:sqlite3_column_blob(sqlStmt, 0) length: sqlite3_column_bytes(sqlStmt, 0)]; 
      UIImage *img; 
      img = [UIImage imageWithData:dataForCachedImage]; 
      imageView.image =img; 
     } 
    [dbsql CloseSQL]; 
    [tblview reloadData]; 

Я так думаю.

0

вы использовали очень сложный путь для извлечения данных из базы данных

использовал этот его очень легко понять, ,

-(void)getListOfUnitsNameByCategory1{ 

    sqlite3_stmt *statement; 

    NSInteger proeditid = [primarykeyID integerValue]; 

    int len = 0; 

    NSString *queryString=[NSString stringWithFormat: @"select image from selection_tbl where expenses_id=%ld",(long)proeditid]; 

    if(sqlite3_prepare_v2(_database, [queryString UTF8String], -1, &statement, NULL)== SQLITE_OK) 
    { 
     while (sqlite3_step(statement) <= SQLITE_ROW) { 
      len = sqlite3_column_bytes(statement, 0); 
      NSData *imagData = [[NSData alloc] initWithBytes: sqlite3_column_blob(statement, 0) length: len]; 

      UIImage *img = [[UIImage alloc] initWithData:imagData]; 
      imageView.image = img; 
     } 
     sqlite3_finalize(statement); 

     [tblview reloadData]; 

    } 
} 
+0

Все в порядке здесь, но это показывает только одну ошибку ~~~ если (sqlite3_prepare_v2 (_database, [QueryString UTF8String], -1, и заявление, NULL) == SQLITE_OK) ~~~ Ошибка :: Использование необъявленной идентификатора '_database' –

+0

Все хорошо здесь, но он показывает только одну ошибку ~~~ если (sqlite3_prepare_v2 (_database, [QueryString UTF8String], -1, и заявление, NULL) == SQLITE_OK) ~~~ об ошибке :: Использование необъявленный идентификатор '_database' –

+0

'_database' является переменной типа' sqlite3 * ', вы также использовали это с другим именем во время вставки. –

Смежные вопросы