2015-04-07 60 views
1

我有一個ListView從SQL緊湊CE數據庫中獲取數據。我已經在數據庫中有一個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

+0

爲什麼要用自動增量列替換ID列? – JunaidKirkire

+0

@JunaidKirkire只是爲用戶排序列表,讓我們假設如果搜索結果顯示100行,我需要它們從1-100開始編號,而不是在數據庫中顯示記錄ID –

回答

1

你可以做這樣的事情:

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

但是這裏的問題是,如果你添加/刪除您可能會得到重複的數字,如果你在一個去不可重複這將會是不成問題的這樣做。

爲了避免這種情況,你可能會需要某種類的全球櫃檯,然後執行:

int counter = 0; 

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

這將確保任何新增加的名單將得到下一個數字了,所以它總是越來越多。

+0

完美答案,恰到好處。我希望我能增加聲望。非常感謝。 –