如果它是自动递增的,我如何在sqlite3数据库中找到特定的id?

时间:2011-04-01 04:51:50

标签: iphone sqlite

我在sqite3数据库中插入一些值并检索它并在tableView中显示 我把代码放在下面

    static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {

    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];

    UIButton *btn=[UIButton  buttonWithType:UIButtonTypeCustom];
    btn.tag = indexPath.row;
    [btn setBackgroundColor:[UIColor clearColor]];
    [btn setBackgroundImage:[UIImage imageNamed:@"del.png"] forState:UIControlStateNormal];
    [btn setFrame:CGRectMake(290, 15, 25, 25)];
    [btn addTarget:self action:@selector(editTable:) 
  forControlEvents:UIControlEventTouchUpInside];
    [cell.contentView addSubview:btn];

}




- (void) editTable:(UIButton *) btn {
NSInteger *indexPath = btn.tag;
NSLog(@"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^%d", indexPath);
[self delete:indexPath]; }

但是当id为INTEGER PRIMARY KEY AUTOINCREMENT时,它每次都会改变值,而不是从零开始, 那么如何在特定索引处找到特定的id?

1 个答案:

答案 0 :(得分:0)

如果修改加载到UITableView中的自动增量表,我假设您对元组进行排序并将它们放在数据源数组对象上,该对象具有数据源委托的正确顺序的表内容。

因此,一旦修改了表,就无法将内存中数据源数组的索引与sqlite3表中的id相关联。这是你描述的问题吗?

一个简单的解决方法是从元组中获取id并以某种方式使该id可用于delete方法,因此它可以基于该id进行删除。