vladj91 Ответов: 1

Как я могу заполнить текстовое поле значениями базы данных из выпадающего списка?


Привет,

Я довольно новичок в C# и пытаюсь заполнить несколько текстовых полей данными из выбранного выпадающего списка.
У меня есть главное окно с текстовыми полями и комбо-боксами, а также отдельный класс для подключения к базе данных (я использую XAMPP/PhpMyAdmin).
Мне удалось заполнить comboboxes данными из базы данных, но я не могу заполнить текстовые поля из выбранного combobox.
Я проверил другие вопросы и учебные пособия, но все, чего мне удалось добиться, - это получить первичный ключ в текстовое поле, но мне нужны разные столбцы из таблицы, в зависимости от текстового поля.

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

Я заполнил combobox из базы данных:

void Completez_Combo_Furnizor()
        {
            combo_furnizor = DB_Furnizori.Combo_Furnizor();
            comboBoxFurnizor.Items.Clear();
            comboBoxFurnizor.DataSource = combo_furnizor;
            comboBoxFurnizor.ValueMember = "id_furnizor";
            comboBoxFurnizor.DisplayMember = "nume";
            

        }


Я дважды щелкнул по выпадающему списку и написал следующее, Но все, что я могу получить, - это первичный ключ (первый столбец). В текстовом поле мне нужно получить 7-й столбец (который является двойным типом.

private void comboBoxFurnizor_SelectedIndexChanged(object sender, EventArgs e)
        {
            textBoxPret.Text = comboBoxFurnizor.SelectedItem.ToString();
        }


И это из класса базы данных (DB_Furnizori.cs), где я открываю соединение и имею несколько запросов к базе данных.

public static DataTable Combo_Furnizor()
        {
            conn.Open();
            MySqlCommand comboFurnizor = new MySqlCommand("SELECT * from furnizori ORDER BY nume", conn);
            MySqlDataAdapter adaptc = new MySqlDataAdapter(comboFurnizor);
            DataTable combo_furnizori = new DataTable();
            adaptc.Fill(combo_furnizori);
            conn.Close();
            return combo_furnizori;


        }


Пожалуйста, помогите, я не знаю, как заставить его работать :(

Richard MacCutchan

Вам нужно использовать элемент из выпадающего списка, чтобы найти соответствующую строку в таблице данных. Затем вы можете извлечь данные в любом столбце, который вам нужен.

vladj91

Спасибо за быстрый ответ. Я действительно не знаю, как это сделать. Я пытался найти это, но не смог найти ничего, что могло бы мне помочь

1 Ответов

Рейтинг:
1

Kraule

Почему вы используете combobox? Не лучше ли использовать datagridview?

Заполните свой datagridview:

datagridview.datasource =  Combo_Furnizor();


И затем:

private void DataGridView1_RowHeaderMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            if (e.RowIndex < 0) return;

            var r = dataGridView1.CurrentRow;
            if (r != null)
            {
                var rid = r.Cells["id_furnizor"].Value.ToString();
                var columnvalue = r.Cells["yourcolumnname"].Value.ToString();

                textBox1.Text = rid + "; " + columnvalue;
            }
        }


Maciej Los

Пожалуйста, используйте правильное форматирование.

Кстати: в чем разница между использованием combobox и datagridview?