0

ID 列 (自動インクリメント) があり、主キーに設定されている SQL データベースにテーブルがあります。テーブルは、この 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 が連続していないことに気付いたのは、ID を表示し始めたときだけでした。

于 2012-09-20T09:54:16.123 に答える