2014-07-08 8 views
1

Je souhaite afficher les données du tableau de la base de données dans l'application iPhone. J'ai utilisé le code suivant pour l'exécuter. Mais ce n'est pas montrer les données dans le tableau.La base de données IOS ne récupère pas les données

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
CustomTableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:@"CustomCell"]; 
const char *dbpath = [_databasePath UTF8String]; 
sqlite3_stmt *statement; 

if (sqlite3_open(dbpath, &_beaconDB) == SQLITE_OK) 
{ 
    NSString *querySQL = [NSString stringWithFormat: 
          @"SELECT vendor_name, enter_message, enter_image FROM beacons WHERE major=%d AND minor=%d", major[indexPath.row], minor[indexPath.row]]; 

    const char *query_stmt = [querySQL UTF8String]; 
    if (sqlite3_prepare_v2(_beaconDB, 
         query_stmt, -1, &statement, NULL) == SQLITE_OK) 
    { 
     if (sqlite3_step(statement) == SQLITE_ROW) 
     { 
      NSString *title = [[NSString alloc] 
           initWithUTF8String: 
           (const char *) sqlite3_column_text(
                   statement, 0)]; 
      NSString *description = [[NSString alloc] 
          initWithUTF8String:(const char *) 
          sqlite3_column_text(statement, 1)]; 
      cell.title.text = title; 
      cell.description.text = description; 
     } 
    sqlite3_finalize(statement); 
    } 
    sqlite3_close(_beaconDB); 
} 

return cell; 
} 

Dans ce qui précède, "majeur" est un tableau. Je veux obtenir la valeur du tableau un par un.

Merci d'avance.

+0

Combien de lignes de votre fonction 'returns numberOfRowsInsection'? Aussi ne pensez-vous pas de mettre ce code de récupération de données en dehors de la fonction 'cellForRowAtIndexPath'. –

+0

renvoie le nombre de valeurs en majuscule. Et aussi comment mettre ce code de récupération en dehors de cellForRowAtIndexPath et afficher les valeurs dans le tablecell –

+0

Voir ce tutoriel http://blog.objectgraph.com/index.php/2010/04/08/how-to-use-sqlite-with -viewable-in-iphone-sdk/Il serait assez vieux mais utile. –

Répondre

1

J'ai résolu ce problème. J'ai fait une erreur dans la ligne suivante.

@"SELECT vendor_name, enter_message, enter_image FROM beacons WHERE major=%d AND minor=%d", major[indexPath.row], minor[indexPath.row]]; 

Au lieu d'utiliser major[indexPath.row]

Je dois utiliser major[objectAtIndex: indexPath.row] et aussi pour minor

Questions connexes