如何将数据库中的多个行和列显示到tableView中?

时间:2014-08-14 10:39:19

标签: ios objective-c uitableview sqlite

我试图将数据库中的行和列显示到tableview中。我的方法是:首先我将从数据库中获取数据,然后我将SQL语句分配给这样的变量:

- (NSMutableDictionary *)arrayOfInquiries
{
    const char *dbpath = [databasePath UTF8String];
    if (sqlite3_open(dbpath, &database) == SQLITE_OK)
    {
        NSString *querySQL = @"select * from inquiry_tb";
        const char *query_stmt = [querySQL UTF8String];
        if (sqlite3_prepare_v2(database,
                               query_stmt, -1, &statement, NULL) == SQLITE_OK)
        {
            while (sqlite3_step(statement) == SQLITE_ROW)
            {
                Inquiry *voucher = [[Inquiry alloc]init];

                NSNumber *id = [[NSNumber alloc] initWithInt:sqlite3_column_int(statement, 1)];
                NSString *name = [[NSString alloc] initWithUTF8String:
                              (const char *) sqlite3_column_text(statement, 2)];
                NSString *date = [[NSString alloc] initWithUTF8String:
                                (const char *) sqlite3_column_text(statement, 3)];
                NSString *branch = [[NSString alloc] initWithUTF8String:
                                (const char *) sqlite3_column_text(statement, 4)];

                NSMutableDictionary *inquiries = [NSMutableDictionary dictionaryWithObjectAndKeys:id,@"id",name,@"name",date,@"date",branch,@"branch",nil];
            sqlite3_reset(statement);
            return inquiries;
            }
         }
      }
    return nil;
}

我打算回到主视图控制器。

我的问题是:如何将其返回主视图控制器。这样我就可以将它用于tableViewCell中的标签。

我的做法是对的吗?还是有更好的方法?

1 个答案:

答案 0 :(得分:0)

@teach是的,你可以做到。

在主视图控制器(.H)中创建NSMutableArray。假设你有

NSMutableArray *id1,*name1,*date1,*branch1;

现在您可以将它添加到您的sql变量中,如此

NSString *querySQL = @"select *yourcolumnnames from inquiry_tb where=?";

NSNumber *id = [[NSNumber alloc] initWithInt:sqlite3_column_int(statement, 0)];

   [id1 addObject:id];

            NSString *name = [[NSString alloc] initWithUTF8String:
                          (const char *) sqlite3_column_text(statement, 1)];
       [name1 addObject:name];

            NSString *date = [[NSString alloc] initWithUTF8String:
                            (const char *) sqlite3_column_text(statement, 2)];
       [date1 addObject:date];

            NSString *branch = [[NSString alloc] initWithUTF8String:
                            (const char *) sqlite3_column_text(statement,3 )];

             [branch1 addObject:branch];

之后你可以添加你的NSMutableArray * id1,* name1,* date1,* branch1;在你的UITableViewcell中显示NSMutableArray。

在属性必须分配(.H)之前

@property (strong, nonatomic)  UILabel *id1label;

现在在(.m)

id1label=[[UILabel alloc]init];
id1label.frame=CGRectMake(115, 5, 400, 50);    
id1label.font=[UIFont fontWithName: @"Neue Helvetica" size:14.0];
id1label.lineBreakMode = NSLineBreakByWordWrapping;
id1label.numberOfLines=0;
id1label.textColor=[UIColor blueColor];
NSArray *comment=[ youranotherNSMutableArray objectAtIndex:indexPath.section];
id1label.text=[comment objectAtIndex:indexPath.row];
[cell.contentView addSubview:id1label];