ComboBox SelectedIndexChanged - PullRequest
       27

ComboBox SelectedIndexChanged

0 голосов
/ 24 апреля 2020

У меня есть 2 таблицы

table01

NameID, имя (PK = NameID)

1, Джон 2, Роуз

10, мистер. X

11, Mrs.X

table02

CarID NameID CarName (PK = CarID, FK = NameID) Отношение

1,1, Benz

2,1, BMW

3, гггг

4,10, xXx

5,11, zZz


в моей форме у меня есть 2 поля со списком

данные со списком1 = данные таблицы 01 * данные 1030 * private void Form1_Load(object sender, EventArgs e) { using (UnitOfWork db = new UnitOfWork()) { //لود کردن کمبوباکس لایه comboBox1.DataSource = db.table01Repository.Get(); comboBox1.DisplayMember = "Name"; comboBox1.ValueMember = "NameID"; } } данные со списком 2 = данные таблицы 02, если NameID = NameID private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { if (comboBox1.SelectedValue.ToString() != null) { using (UnitOfWork db = new UnitOfWork()) comboBox2.DataSource = db.table02Repository.GetNameIDByFilter(comboBox1.SelectedValue.ToString()); comboBox2.DisplayMember = "CarName"; comboBox2.ValueMember = "CarID"; } } Теперь моя проблема, если я изменить combox1 на 1 (john) мои данные incombobox2 = Benz BMW xXx zZz это потому, что в SelectedIndexChanged (считать все 1 в table02) как я должен изменить свой код на 1 = 1 (только 1), а не 1 = 1+ 0 или 1 = 1 + 1 + 0

мой репозиторий

public IEnumerable<table02> GetNameIDByFilter(string parameter)
{
    return db.table02.Where(g => g.NameID.ToString().Contains(parameter)).ToList();
}

1 Ответ

0 голосов
/ 25 апреля 2020

я нахожу меня ошибкой, и я думаю, что другие новички, возможно, могут узнать это

мой репозиторий

IEnumerable<table02> GetNameIDByFilter(string parameter);

мой репозиторий

public IEnumerable<table02> GetNameIDByFilter(string parameter)
{
    return db.table02.Where(g => g.NameID.ToString().Contains(parameter)).ToList();
}

это большая ошибка !!! Почему ? здесь я постараюсь вернуть строку и проверить (int) ID! и в форме я преобразую INT в строку (это плохой способ), почему? потому что я могу видеть INT (в моем репозитории) и мне не нужно конвертировать INT в строку снова, мой код репозитория конвертируется в этот

irepository

IEnumerable<table02> GetNameIDByFilter(int ID);

теперь я вижу, что мой ID ничего не нужно

public IEnumerable<table02> GetNameIDByFilter(int ID)
{
    return db.table02.Where(g => g.NameID == ID).ToList();
}

теперь я могу легко проверить 2 идентификатора

и мой код для преобразования в этот

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    if (comboBox1.SelectedValue.ToString() != null)
    {
        using (UnitOfWork db = new UnitOfWork())
            comboBox2.DataSource = db.table02Repository.GetNameIDByFilter(Convert.ToInt32(comboBox1.SelectedValue));

        comboBox2.DisplayMember = "CarName";
        comboBox2.ValueMember = "CarID";
    }
}

теперь мне нужно преобразовать строку в int для проверки МОЕГО РЕАЛЬНОГО ID не String ID

и

мои данные в combobox2 =

Benz

BMW

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

многие многие новички, как я, учатся c#, лямбда, сущность, linq, sql (но они не знают, как писать код, и я думаю, что мой вопрос поможет много новых как я)

...