C# combox отображает элементы и значение
мой комбобокс..
cbodept и cbocourse
мои таблицы БД..
tbldepartment[deptcode, dept_desc]
tblcourse[coursecode, course_desc,deptcode]
Чего я хочу:
1. во время загрузки формы : отображение всех dept_desc в cbodept.
2. Значение cbodept: я хочу, чтобы dept_desc как значение было сохранено в моей БД.
2. cbodept_SelectedIndexChanged : я хочу, чтобы загрузить все курсы, на мой cbocourse.
3. Значение cbocourse: я хочу, чтобы значение course_desc было сохранено в моей БД.
Что я уже пробовал:
private void loadDepartment() { try { SqlConnection cnn = new SqlConnection(cs.constring()); DataSet ds = new DataSet(); string getEmpSQL = "select deptcode from tbldepartment"; SqlDataAdapter sda = new SqlDataAdapter(getEmpSQL, cnn); sda.Fill(ds); cbodept.DataSource = ds.Tables[0]; cbodept.DisplayMember = ds.Tables[0].Columns[0].ToString(); } catch(Exception ex) { MessageBox.Show(ex.ToString()); } } private void loadCourse() { try { SqlConnection cnn = new SqlConnection(cs.constring()); DataSet ds = new DataSet(); string getEmpSQL = "select coursecode from tblcourse where department= '" + cbodept.Text + "'"; SqlDataAdapter sda = new SqlDataAdapter(getEmpSQL, cnn); sda.Fill(ds); cbocourse.DataSource = ds.Tables[0]; cbocourse.DisplayMember = ds.Tables[0].Columns[0].ToString(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } private void cbodept_SelectedIndexChanged(object sender, EventArgs e) { loadCourse(); }
Richard Deeming
Ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.
Все, что вы хотели знать о SQL-инъекции (но боялись спросить) | Трой Хант[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? | Обмен Стеками Информационной Безопасности[^]
Шпаргалка по параметризации запросов / OWASP[^]