0

我在 SQL 数据库中有一个表,它有一个 ID 列(自动递增)并设置为主键。该表由该 ID 和帐户名组成。

然后我有一些代码可以读取这个表并用数据填充一个列表视图。问题是,如果我按帐户名订购 - 我会在列表视图中列出重复项。如果我按 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);
        }

正如我所说,如果我将其更改为orderby c.ID,那么它会按预期返回数据。我还尝试向 AccountName 添加索引。我确实使用了自定义列表视图项子类,但所做的只是存储对 Client 对象的引用。

知道如何解决这个问题吗?

谢谢,

4

1 回答 1

0

只是为了澄清其他可能阅读此问题的人,这是程序员错误。我的数据确实包含重复项,但由于排序顺序,它们没有一起列出,因此在手动检查数据时我没有看到它们。只有当我开始显示 ID 时,我才意识到它们不是连续的。

于 2012-09-20T09:54:16.123 回答