2012-09-19 28 views
0

我有一個SQL數據庫中有一個ID列(自動遞增)並設置爲主鍵的表。該表由此ID和帳戶名稱組成。在Linq中複製到SQL數據

然後我有一段代碼讀取這個表並用數據填充listview。問題是,如果我按帳戶名稱排序 - 我會在列表視圖中列出重複項目。如果我通過ID命令它,我沒有看到任何重複。

SQL數據庫中的原始數據不包含重複的帳戶名稱,顯然這就是我希望在列表視圖中看到的內容。

這是LINQ的我使用來獲取數據...

public static IEnumerable<Client2> GetClientList() 
    { 
     return (IEnumerable<Client2>)from c in entity.Client2s 
            orderby c.AccountName 
            select c; 
    } 

這是被用來創建列表視圖代碼...

 // Clear the listview 
     listViewClient.Items.Clear(); 

     // Get imported client list from database 
     foreach (Client2 c in SQLHandler.GetClientList()) 
     { 
      ListViewItemClient lvi = new ListViewItemClient(c.AccountName, c); 
      listViewClient.Items.Add(lvi); 
     } 

由於我說,如果我將此更改爲order by c.ID,那麼它會按預期返回數據。我也試着給AccountName添加一個索引。我使用自定義ListView項子類,但所做的只是存儲對Client對象的引用。

任何想法如何解決這個問題?

感謝,

+0

解決什麼問題?你不想重複?你想改變排序? – RedFilter

+0

您應該發佈我們已經試過的代碼 –

+0

SQL數據中沒有重複項。 Linq to SQL正在創建重複項。因此,我希望數據庫中的數據是我填充列表視圖時看到的數據。 – Simon

回答

0

只是爲了澄清對別人可能閱讀這個問題,這是程序員的錯誤。我的數據確實包含重複項,但由於排序順序,它們沒有列在一起,因此在手動檢查數據時我沒有看到它們。只有當我開始顯示ID時,我才意識到他們不是順序的。