2012-09-19 27 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时,我才意识到他们不是顺序的。