Ho provato a cercare nel forum (anche in rete, per la verità), ma non ho trovato niente che faccia al caso mio e scusate la banalità della domanda.
Sto imparando un nuovo metodo per gestire le combobox utilizzando il Data Table.
Per studio ho creato questa form
che inserisce i dati in tre tabelle: Teachers - Classes - Subject.
Lo scopo dello studio è imparare a inserire più volte il valore della stessa combobox in un unico inserimento.
Per popolare la prima combo CBFirstClass ho usato questa funzione:
public void FirstClassComboBox()
{
SqlConnection conn = new SqlConnection(myconnstrng);
conn.Open();
SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM Classes", conn);
DataTable firstClassDT = new DataTable();
adapter.Fill(firstClassDT);
CBFirstClass.DataSource = firstClassDT;
CBFirstClass.ValueMember = "IdClass";
CBFirstClass.DisplayMember = "Class";
DataRow topItem = firstClassDT.NewRow();
topItem[0] = 1;
topItem[1] = "";
firstClassDT.Rows.InsertAt(topItem, 0);
CBFirstClass.DataSource = firstClassDT;
conn.Close();
}
Ho creato prima le classi per il metodo getter/setter con le quali pescare i campi dal database; quindi ho creato i metodi per l'inserimento, la modifica e la cancellazione dei record, utilizzando il costrutto try/catch/finally.
Infine, ho richiamato i metodi abbinandoli ai vari pulsanti.
Per il pulsante SAVE non riesco ad abbinare il valore ID della combo al campo del database (valore intero e chiave esterna)
tBLL è l'oggetto della classe di cui al metodo getter/setter
tDAL è l'oggetto della classe di cui al metodo che contiene le query di esecuzione dei comandi.
private void btnAdd_Click(object sender, EventArgs e)
{
tBLL.Name = txtName.Text;
tBLL.Surname = txtSurname.Text;
tBLL.IdClass = ?
tBLL.IdSubject = ?
bool outcome = tDAL.InsertTeacher(tBLL);
if(outcome == true)
{
MessageBox.Show("Inserimento effettuato");
ClearTextBox();
}
else
{
MessageBox.Show("Inserimento non riuscito");
}
}
Ho provato ad usare:
SelectedIndex e SelectedValue ma mi dà sempre errore.