Meerdere arrays uit SQLite DB discussie in Ontwikkelen voor iOS forum; ( verdwijnt na registratie ) Ola! Een nieuwe app die ik aan het maken ben leest gegevens uit een SQLite database en moet deze in een tableview tonen. Nu bestaat ...
|
Registreer | FAQ | Ledenlijst | Kalender | Berichten van vandaag | Zoeken |
#1
|
|||
|
|||
Meerdere arrays uit SQLite DB
Ola!
Een nieuwe app die ik aan het maken ben leest gegevens uit een SQLite database en moet deze in een tableview tonen. Nu bestaat de database uit een aantal rijen, met per rij 6 kolommen. Nu wil ik dat als een kolom in een rij de string "Nederland" bevat, deze rij wordt toegevoegd aan de array "arrayNederland", en dat als een kolom in een rij de string "Spanje" bevat, deze rij wordt toegevoegd aan de array "arraySpanje", etc. De gegevens worden dus uit de database gehaald en gesorteerd op land, zoals een specifieke kolom dat aangeeft. De vraag is alleen hoe doe ik dit? Vervolgens wordt er per section een verschillende array gebruikt in de tableview, maar dit is eenvoudig. Tot zover werkt het prima met het lezen van de data uit de database, alleen het sorteren moet nog komen. Samengevat: 1) pak alle rijen 2) lees 2e kolom van elke rij 3) ALS 2e kolom "Nederland" bevat, voeg de rij waar deze kolom in staat dan toe aan de array "arrayNederland" Tot zover heb ik deze code voor het lezen van de data: Code:
-(void)readDataFromDatabase { // Setup the database object sqlite3 *database; // Init the animals Array dataobjects = [[NSMutableArray alloc] init]; // Open the database from the users filessytem if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) { // Setup the SQL Statement and compile it for faster access const char *sqlStatement = "SELECT * FROM premium"; 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 while(sqlite3_step(compiledStatement) == SQLITE_ROW) { // Read the data from the result row NSString *aCity = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 1)]; NSString *aState = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 2)]; NSString *aStreet = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 3)]; NSString *aZipcode = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 4)]; NSString *aPhonenumber = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 5)]; NSString *aDescription = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 6)]; // Create a new data object with the data from the database DataObj *dataobj = [[DataObj alloc] initWithName:aCity state:aState street:aStreet zipcode:aZipcode phonenumber:aPhonenumber description:aDescription]; // Add the data object to the data Array [dataobjects addObject:outlet]; [dataobjects release]; } } // Release the compiled statement from memory sqlite3_finalize(compiledStatement); } sqlite3_close(database); } Laatst gewijzigd door DJ14; 30-04-11 om 12:25. |
|
|
Gesponsorde links (verdwijnt na registratie)
|
#2
|
|||
|
|||
Aangezien het haast heeft doe ik het nu op een iets andere manier (naar mijn idee is deze manier slechter omdat het aantal rijen telkens handmatig moet worden ingesteld bij verandering van aantal rijen in tableview). Wat ik nu heb is de volgende SQL query waardoor alles al gesorteerd wordt op land:
Code:
const char *sqlStatement = "SELECT * FROM premium ORDER BY state ASC"; |
#3
|
|||
|
|||
lol, het is me gelukt een enkele array te splitsen in een tableview door onderstaand te doen:
Code:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { if(indexPath.section == 0){ DataObject *data1 = (DataObject *)[appDelegate.array objectAtIndex:indexPath.row]; cell.textLabel.text = data1.name; } if(indexPath.section == 1){ DataObject *data2 = (DataObject *)[appDelegate.array objectAtIndex:indexPath.row + 10]; cell.textLabel.text = data2.name; } if(indexPath.section == 2){ DataObject *data3 = (DataObject *)[appDelegate.array objectAtIndex:indexPath.row + 11]; cell.textLabel.text = data3.name; } // en zo de hele tijd verder return cell; } Code:
- (int)getCountryCount:(NSString*)hetLand { int count = 0; //hier de database uitlezen met sql query in vorige post //NSLog(@"num = %i", count); return count; } Code:
ClassMetTableView *cmtv = [[ClassMetTableView alloc] init]; int nederlandCount = [[self performSelector:@selector(getCountryCount:) withObject:@"Nederland"] intValue]; [cmtv setCountryCount:nederlandCount]; int duitslandCount = [[self performSelector:@selector(getCountryCount:) withObject:@"Duitsland"] intValue]; [cmtv setDuitslandCount:duitslandCountCount]; int spanjeCount = [[self performSelector:@selector(getCountryCount:) withObject:@"Spanje"] intValue]; [cmtv setSpanjeCount:spanjeCount]; Code:
@interface ClassMetTableView : UITableViewController <UITableViewDelegate, UITableViewDataSource> { NSInteger NederlandCount; NSInteger DuitslandCount; NSInteger SpanjeCount; } @property (nonatomic, assign) NSInteger CaliforniaCount; @property (nonatomic, assign) NSInteger ConnecticutCount; @property (nonatomic, assign) NSInteger FloridaCount; Code:
@synthesize NederlandCount, DuitslandCount, SpanjeCount; Code:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ if(section == 0) return NederlandCount; if(section == 1) return DuitslandCount; if(section == 2) return SpanjeCount; // etc; } Laatst gewijzigd door DJ14; 01-05-11 om 18:55. |
#4
|
|||
|
|||
Opgelost, getCountryCount functie verplaatst naar ClassMetTableView.m. Gelijk verdwenen hiermee een hoop waarschuwingen
|
Er zijn 1 actieve gebruikers die momenteel deze discussie bekijken (0 leden en 1 gasten) |
|
Soortgelijke discussies |
||||
Discussie | Auteur | Forum | Reacties | Laatste bericht |
iphone 4 synchronisen met meerdere google agenda's zonder uit te loggen | namastee | iTunes | 2 | 25-09-10 23:54 |
Applicaties kopen uit meerdere Appstores | phonefreak | Archief | 1 | 08-06-09 09:21 |
SQLite Discussie | markvwijnen | Ontwikkelen voor iOS | 3 | 01-06-09 16:08 |
|
|