c# combobox Items добавить в базу данных

Есть ComboBox значения (student, teacher, magister). В базе данных MySQL есть под такими же именами колонки student, teacher, magister. Теперь при выборе teacher нужно добавлять данные в колонку teacher.

Помогите пожалуйста как это сделать? У меня все параметры добавляются только в одну колонку.

private void Addbutton_Click(object sender, EventArgs e)
{
    try
    { 
        string query = "insert into sta(student, teacher, magister) Values (@student, @teacher, @magister)";
        this.dataGridView1.DataSource = AutoNumberedTable(dt);
        con.Open();
        MySqlCommand cmd = new MySqlCommand(query, con);
        cmd.Parameters.Add("@student", MySqlDbType.VarChar, 20).Value = comboBox4.Items;
        cmd.Parameters.Add("@teacher", MySqlDbType.VarChar, 20).Value = comboBox4.Items;
        cmd.Parameters.Add("@magister", MySqlDbType.VarChar, 20).Value = comboBox4.Items;

        if (cmd.ExecuteNonQuery() == 1)
        {
            MessageBox.Show("Added");
        }

        con.Close();

        spisok();
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message, "Error!");
        con.Close();
    }
}

Ответы (1 шт):

Автор решения: aepot

У вас неправильная архитектура таблиц в БД.

Вы хотите получить

sta

id student teacher magister
1 Ivanov
2 Petrov
3 Sidorov

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

sta

id student teacher magister
1 Ivanov Ivanov
2 Petrov Petrov
3 Sidorov Sidorov

Структура данных никак не защищает вас от такого рода ошибок

Сделайте другую таблицу типа

sta

id name type_id
1 Ivanov 0
2 Petrov 1
3 Sidorov 2

Где type_id - ссылка на другую таблицу

types

id name
0 student
1 teacher
2 magister

Как раз, вы сможете из этой таблицы заполнить ComboBox и по его же значению выставлять type_id в таблице с фамилиями.

Позднее вы познакомитесь с SQL JOIN и сможете доставать такие данные одним запросом из обеих таблиц, а не двумя, а пока попробуйте реализовать то что я предложил, даже разными запросами.

→ Ссылка