Исключение: коллекция элементов не может быть изменена, если установлено свойство DataSource.

У меня было поле со списком в Windows Form, которое привязано к данным из базы данных.

Я сделал это хорошо, но когда я попытался добавить первый элемент ‹-Пожалуйста, выберите категорию-> перед данными из базы данных появилась эта ошибка

(коллекцию элементов нельзя изменить, если установлено свойство DataSource) в CBParent.Items.Insert(0, "-select-");

    public Category()
        {
            InitializeComponent();
            CategoryParent();

        }
        private void CategoryParent()
        {

            using (SqlConnection Con = GetConnection())
            {

                SqlDataAdapter da = new SqlDataAdapter("Select Category.Category ,Category.Id from Category", Con);
                DataTable dt = new DataTable();
                da.Fill(dt);
                CBParent.DataSource = dt;
                CBParent.DisplayMember = "Category";
                CBParent.ValueMember = "Id";
CBParent.Items.Insert(0, "-select-");
            }
        }

person Myworld    schedule 27.02.2011    source источник


Ответы (1)


Вам нужно будет добавить элемент в сам источник данных, то есть в SQL-запрос, потому что, как говорит ошибка, вы не можете добавлять элементы в элемент управления, если у вас установлен источник данных.

Одним из способов было бы заставить ваш sql-запрос сделать объединение следующим образом:

Select Category.Category ,Category.Id from Category

UNION

SELECT 'Please select Category', 0 
person PMC    schedule 27.02.2011