1

私が抱えているこの問題に似た質問をいくつか見ましたが、それらはすべてうまくいかないようです。

現在、データベースクエリの項目を配列リストに入力し、ComboBoxの入力に使用する配列リストを返すメソッドがあります。ComboBoxは、追加のデータベースクエリの検索フィルターとして使用されます。

null値が選択されたときにユーザーが「フィルターをオフにする」ことができるように、配列リストにnull値を追加したいと思います。

この問題は、配列リストにnull値を追加するときに発生します。データベースアイテムを追加する前にnull値を追加すると、すべてのアイテムが実際のComboBoxに表示されません。ArrayListが入力された後にnull値を追加すると、null値がComboBoxの行として表示されることはありませんが、他のすべてはそこにあります。

        public static ArrayList DropDown()
    {
        ArrayList status = new ArrayList();
        connect.Open();

        // Finds the stuff to use in the  COMBO BOX
        cmd.CommandText = String.Format("query");
        reader = cmd.ExecuteReader();

        while (reader.Read())
        {

            status.Add(String.Format("{0}", reader[BANK_ID]));
        }
        string holder = null;
        status.Add(holder); 
        connect.Close();
        return status;
    }

これにより、ComboBoxにデータが入力されますが、null行はありません。

        public static ArrayList DropDown()
    {
        ArrayList status = new ArrayList();
        string holder = null;
        status.Add(holder); 
        connect.Open();

        // Finds the stuff to use in the  COMBO BOX
        cmd.CommandText = String.Format("query");
        reader = cmd.ExecuteReader();
        ;
        while (reader.Read())
        {

            status.Add(String.Format("{0}", reader[BANK_ID]));
        }

        connect.Close();
        return status;
    }

これにより、コンボボックスには何も表示されません。

助けてくれてありがとう!

4

1 に答える 1

3

コンボボックスのアイテム コレクションに null を含めることはできません。参照: http://msdn.microsoft.com/en-us/library/system.windows.forms.combobox.objectcollection.add.aspx

設定DataSourceはこれを内部的にチェックしていると思います。したがって、あなたが指摘した動作です(おそらく、より知識のある人がこれを確認できます)

代わりに String.Empty を追加することをお勧めします。arraylist をまとめて削除し、代わりに文字列配列/リストを使用できます。

comboBox.Items.Insert(0, string.Empty);
于 2013-01-17T22:35:47.963 に答える