Member 13777741 Ответов: 1

Winforms C# - добавление объектов базы данных в combobox


- Эй!

Поэтому я пытаюсь получить столбцы " имя " и "фамилия" из моей таблицы "контакты" в моей базе данных в мой combox, хотя то, как я пытаюсь это сделать, кажется, не совсем работает. Моя попытка выглядит так в настоящее время, я был бы признателен за любую помощь

Что я уже пробовал:

private void comboBox_PartnerSelect_SelectedIndexChanged(object sender, EventArgs e)
{
    SimonTestDBEntities db = new SimonTestDBEntities();
    var contact = db.Contacts;

    foreach (var item in contact)
    {
        string a = Convert.ToString(item.Kunden_Vorname);
        string b = Convert.ToString(item.Name);
        string test = a + b;
        comboBox_PartnerSelect.Items.Add(test);

    }
}

CS2011

вы пробовали установить индекс после добавления элементов ?

F-ES Sitecore

"Не работает" не дает никому достаточно информации, чтобы помочь вам. Вы бы позвонили механику и сказали: "моя машина не работает, как мне ее починить?"

Детализируйте, что происходит, чего вы не хотите, или что не происходит, что вы делаете, что должно произойти.

Member 13777741

Извините за доставленные неудобства!
Это не добавляет элемент в combobox, вот что я хотел сказать.

F-ES Sitecore

Похоже, что при изменении выбранного элемента в комбо comboBox_PartnerSelect вы просто добавляете к нему дополнительные элементы. Вы уверены, что именно это собираетесь сделать? Используйте отладчик для пошагового просмотра кода, чтобы понять, почему он не добавляет элементы. Проверьте, что событие действительно срабатывает, а затем проверьте, есть ли элементы в "Контакте".

BillWoodruff

Для изменения содержимого поля со списком на основе выбора в поле со списком, что указывает на проблемы дизайна. Обычно вы меняете содержимое второго выпадающего списка на основе изменения выбора в первом выпадающем списке.

Объявление нового экземпляра базы данных в событии изменения ComboBox также является возможным запахом кода.

Вы можете привязать ComboBox к набору значений с помощью свойства DataSource.

1 Ответов

Рейтинг:
2

Daniel Andrei Popescu

Эй,насколько я вижу, вы используете entity framework для того, чтобы сделать это.Насколько я понимаю, вы пытаетесь добавить 2 столбца в combobox.Попробуйте это, как посмотреть, если это работает:ваш m

private void comboBox_PartnerSelect_SelectedIndexChanged(object sender, EventArgs e)
{
using(SimonTestDBEntities db = new SimonTestDBEntities()){


var merge = Select(c => new { Kunden_Vorname = c.Kunden_Vorname, 
                                      Name=c.Name      
                                             DisplayValue = c.Kunden_Vorname + ": " + c.Name
                                           })
merge.ToList();
}

То, что я сделал здесь, - это взял 2 столбца и передал значения из базы данных в значения, которые у вас есть в качестве ссылки в вашем коде.DisplayValue-это DisplayMember здесь и далее .Метод ToList() помогает отобразить все элементы, которые находятся в двух столбцах.Надеюсь, это поможет :)


BillWoodruff

Любопытно: что заставляет вас думать, что здесь используется EF ?

Daniel Andrei Popescu

Когда у него есть sth вроде "TstDemoDBEntities", это не значит, что он использует entity framework?Если я ошибаюсь,то приношу свои извинения :) Это метод, который я использовал, когда у меня была привязка с combobox, и он работал отлично.