将自动编号列添加到列表视图表?

时间:2015-04-07 10:04:56

标签: c# winforms listview

我有一个从SQL紧凑型CE数据库中获取数据的ListView。我已经在数据库中有一个ID列,但我想在列表视图中添加一个自动编号列。

我想用自动编号列替换ID列(我不想将数字保存在数据库本身,我只想对列表视图中的行进行排序) http://i.imgur.com/nenhN2w.jpg

我正在使用的代码:

ListViewItem item = new ListViewItem(sqldr["ID"].ToString());
                    item.SubItems.Add(sqldr["EnglishWord"].ToString());
                    item.SubItems.Add(sqldr["EnglishDesc"].ToString());
                    item.SubItems.Add(sqldr["ArabicDesc"].ToString());
                    item.SubItems.Add(sqldr["ArabicWord"].ToString());
                    item.SubItems.Add(sqldr["Subject"].ToString());


                    listView1.Items.Add(item);

我正在使用C# - Windows应用程序 - WinForms

1 个答案:

答案 0 :(得分:2)

你可以这样做:

ListViewItem item = listView.Items.Add((listView.Items.Count + 1).ToString());

然而,这里的问题是,如果你添加/删除,你可能会得到重复的数字,如果你一次性这样做,永远不要重复,它不是一个问题。

为了避免这种情况,您可能需要某种类全局计数器,然后执行:

int counter = 0;

ListViewItem item = listView.Items.Add((++counter).ToString());

这样可以确保列表中的任何新增内容都能获得下一个数字,因此它总是会增加。