Lid |
|
Beste Allen,
Ik ben bezig met een applicatie die zijn gegevens opslaat in een Access database. Dit werkt allemaal prima, echter loop ik tegen wat problemen aan. Ik heb een database klasse geschreven, hiermee haal ik de gegevens op en stop ze in een datatabel. Deze datatabel is gekoppeld aan een datagridview.
In dezelfde klasse als de datagridview heb ik een refresh methode geschreven. Deze haalt simpel weg alle data opnieuw op, en maakt opnieuw de koppeling naar de tabel en de datagridview. Als ik deze methode aanroep binnen deze klasse werkt dit perfect, maar als ik de methode in een andere klasse aanroep doet hij niks.
Heeft iemand enig idee waar dit aan kan liggen, want ik kan er niet achterkomen.
Hieronder de relevante code:
refresh methode // w_Studenten.cs
public void studentRefresh()
{
//Methode aanroepen voor het ophalen van gegevens
DataSet query = academieDB.getDataSet("SELECT * FROM student ORDER BY achternaam ASC", "student");
//Dataset aan Datatabel koppelen
t = query.Tables["student"];
//Datatabel aan datagrid koppelen
dgv_Studenten.DataSource = t;
}
public void studentRefresh() { //Methode aanroepen voor het ophalen van gegevens DataSet query = academieDB.getDataSet("SELECT * FROM student ORDER BY achternaam ASC", "student"); //Dataset aan Datatabel koppelen t = query.Tables["student"]; //Datatabel aan datagrid koppelen dgv_Studenten.DataSource = t; }
Na het drukken op een knop op een ander scherm wordt de onderstaande code uitgevoerd.
w_StudentBewerken.cs
//Methode aanroepen voor het ophalen van gegevens
DataSet query = academieDB.getDataSet("UPDATE student SET ACHTERNAAM = '" + tb_achternaam.Text + "' , ROEPNAAM = '" + tb_roepnaam.Text + "', VOORVOEGSEL = '" + tb_voorvoegsel.Text + "', VOORLETTERS = '" + tb_voorletters.Text + "', STRAAT = '" + tb_straat.Text + "', PLAATS = '" + tb_woonplaats.Text + "', POSTCODE = '" + mst_postcode.Text + "', EMAIL = '" + tb_emailAdres.Text + "', GEB_DATUM = '" + mst_geboorteDatum.Text + "', OPLEIDING = '" + tb_opleiding.Text + "', INSTROOM = '" + instroomUpdate + "', VTDT = '" + VTDT + "' WHERE idcode = '" + tb_studentNummer.Text + "'", "studentUpdate");
//Dataset aan Datatabel koppelen
t = query.Tables["studentUpdate"];
//Datatabel aan datagrid koppelen
studentInfo.dgv_Studenten.DataSource = t;
//Datagridview refreshen
studentInfo.studentRefresh();
//Scherm sluiten
this.Close();
//Methode aanroepen voor het ophalen van gegevens DataSet query = academieDB.getDataSet("UPDATE student SET ACHTERNAAM = '" + tb_achternaam.Text + "' , ROEPNAAM = '" + tb_roepnaam.Text + "', VOORVOEGSEL = '" + tb_voorvoegsel.Text + "', VOORLETTERS = '" + tb_voorletters.Text + "', STRAAT = '" + tb_straat.Text + "', PLAATS = '" + tb_woonplaats.Text + "', POSTCODE = '" + mst_postcode.Text + "', EMAIL = '" + tb_emailAdres.Text + "', GEB_DATUM = '" + mst_geboorteDatum.Text + "', OPLEIDING = '" + tb_opleiding.Text + "', INSTROOM = '" + instroomUpdate + "', VTDT = '" + VTDT + "' WHERE idcode = '" + tb_studentNummer.Text + "'", "studentUpdate"); //Dataset aan Datatabel koppelen t = query.Tables["studentUpdate"]; //Datatabel aan datagrid koppelen studentInfo.dgv_Studenten.DataSource = t; //Datagridview refreshen studentInfo.studentRefresh(); //Scherm sluiten this.Close();
Alles in bovenstaande codes werkt perfect, behalve de "studentInfo.studentRefresh();". Hij geeft geen erorr dus ik heb ook geen flauw idee waarom hij hem niet pakt.
Bijvoorbaat dank.
"""""""""
Het probleem is opgelost. De methode werkte wel, maar hij kon de datgridview niet aanspreken. Om dit op te lossen heb ik gebruik gemaakt van parent en child. Nu werkt het wel.
"""""""""
|