update doesn't save in database
-
Hi I'm sure I'm missing something, but I can't see what.... I take data from form1 to form2, make my changes and click on form2's save button. It updates correctly the form1's datagridview but doesn't save the data in the database. Can anyone see why it doesn't save in the database? Kind regards, simsen :-) My code: private DataViewManager dsView; private DataSet ds; private OleDbDataAdapter da1; private OleDbDataAdapter da2; private OleDbCommandBuilder cBuilderKunder; private OleDbCommandBuilder cBuilderFaktura; string myDB = "c:\\ANSI\\Fakturasystem.mdb"; private void btnRetKunde_Click(object sender, EventArgs e) { // Find den aktuelle row der er selected når der dobbeltklikkes. CurrencyManager cm = this.BindingContext[dgrKunder.DataSource, dgrKunder.DataMember] as CurrencyManager; if (cm != null) { DataRowView rowView = cm.Current as DataRowView; if (rowView != null) { // Nu har vi row'en der skal editeres. // Og vi starter din edit form op. using (RetKunde ef = new RetKunde()) { // Initialiserer din edit forms tekstfelter // til de eksisterende data. ef.Navn = rowView["Navn"].ToString(); ef.Adresse = rowView["Adresse"].ToString(); ef.Postnr = rowView["Postnr"].ToString(); ef.Byen = rowView["Byen"].ToString(); ef.Telefonnr = rowView["Telefonnr"].ToString(); ef.Mobilnr = rowView["Mobilnr"].ToString(); ef.EmailAdr = rowView["EmailAdr"].ToString(); ef.Noter = rowView["Noter"].ToString(); // Vi viser formen som en dialog, og tester hvilken knap brugeren har trykket på vha. DialogResult. if (ef.ShowDialog() == DialogResult.OK) { // Hvis brugeren trykkede på OK sætter vi værdierne i Row'en til de værdier brugeren har tastet ind. rowView["Navn"] = ef.Navn; rowView["Adresse"] = ef.Adresse; rowView["Postnr"] = ef.Postnr; rowView["Byen"] = ef.Byen; rowView["Telefonnr"] = ef.Telefonnr; rowView["Mobilnr"] = ef.Mobilnr; rowView["EmailAdr"] = ef.EmailAdr; rowView["Noter"] = ef.Noter; //opdaterer Adapteren builderOpbygning(); da1.Update(ds); } } } } } private void builderOpbygning() { cBuilderKunder = new OleDbCommandBuilder(da1); cBuilderFaktura = new OleDbCommandBuilder(da2); da1.UpdateCommand = cBuilderKunder.GetUpdateCommand(); da1.DeleteCommand = cBuilderKunder.GetDeleteCommand(); da2.UpdateCommand = cBuilderFaktura.GetUpdateCommand(); }
-
Hi I'm sure I'm missing something, but I can't see what.... I take data from form1 to form2, make my changes and click on form2's save button. It updates correctly the form1's datagridview but doesn't save the data in the database. Can anyone see why it doesn't save in the database? Kind regards, simsen :-) My code: private DataViewManager dsView; private DataSet ds; private OleDbDataAdapter da1; private OleDbDataAdapter da2; private OleDbCommandBuilder cBuilderKunder; private OleDbCommandBuilder cBuilderFaktura; string myDB = "c:\\ANSI\\Fakturasystem.mdb"; private void btnRetKunde_Click(object sender, EventArgs e) { // Find den aktuelle row der er selected når der dobbeltklikkes. CurrencyManager cm = this.BindingContext[dgrKunder.DataSource, dgrKunder.DataMember] as CurrencyManager; if (cm != null) { DataRowView rowView = cm.Current as DataRowView; if (rowView != null) { // Nu har vi row'en der skal editeres. // Og vi starter din edit form op. using (RetKunde ef = new RetKunde()) { // Initialiserer din edit forms tekstfelter // til de eksisterende data. ef.Navn = rowView["Navn"].ToString(); ef.Adresse = rowView["Adresse"].ToString(); ef.Postnr = rowView["Postnr"].ToString(); ef.Byen = rowView["Byen"].ToString(); ef.Telefonnr = rowView["Telefonnr"].ToString(); ef.Mobilnr = rowView["Mobilnr"].ToString(); ef.EmailAdr = rowView["EmailAdr"].ToString(); ef.Noter = rowView["Noter"].ToString(); // Vi viser formen som en dialog, og tester hvilken knap brugeren har trykket på vha. DialogResult. if (ef.ShowDialog() == DialogResult.OK) { // Hvis brugeren trykkede på OK sætter vi værdierne i Row'en til de værdier brugeren har tastet ind. rowView["Navn"] = ef.Navn; rowView["Adresse"] = ef.Adresse; rowView["Postnr"] = ef.Postnr; rowView["Byen"] = ef.Byen; rowView["Telefonnr"] = ef.Telefonnr; rowView["Mobilnr"] = ef.Mobilnr; rowView["EmailAdr"] = ef.EmailAdr; rowView["Noter"] = ef.Noter; //opdaterer Adapteren builderOpbygning(); da1.Update(ds); } } } } } private void builderOpbygning() { cBuilderKunder = new OleDbCommandBuilder(da1); cBuilderFaktura = new OleDbCommandBuilder(da2); da1.UpdateCommand = cBuilderKunder.GetUpdateCommand(); da1.DeleteCommand = cBuilderKunder.GetDeleteCommand(); da2.UpdateCommand = cBuilderFaktura.GetUpdateCommand(); }
-
Some Code Project Tutorials for you to read Code Project - dataview manager etc[^]
-
Hi I'm sure I'm missing something, but I can't see what.... I take data from form1 to form2, make my changes and click on form2's save button. It updates correctly the form1's datagridview but doesn't save the data in the database. Can anyone see why it doesn't save in the database? Kind regards, simsen :-) My code: private DataViewManager dsView; private DataSet ds; private OleDbDataAdapter da1; private OleDbDataAdapter da2; private OleDbCommandBuilder cBuilderKunder; private OleDbCommandBuilder cBuilderFaktura; string myDB = "c:\\ANSI\\Fakturasystem.mdb"; private void btnRetKunde_Click(object sender, EventArgs e) { // Find den aktuelle row der er selected når der dobbeltklikkes. CurrencyManager cm = this.BindingContext[dgrKunder.DataSource, dgrKunder.DataMember] as CurrencyManager; if (cm != null) { DataRowView rowView = cm.Current as DataRowView; if (rowView != null) { // Nu har vi row'en der skal editeres. // Og vi starter din edit form op. using (RetKunde ef = new RetKunde()) { // Initialiserer din edit forms tekstfelter // til de eksisterende data. ef.Navn = rowView["Navn"].ToString(); ef.Adresse = rowView["Adresse"].ToString(); ef.Postnr = rowView["Postnr"].ToString(); ef.Byen = rowView["Byen"].ToString(); ef.Telefonnr = rowView["Telefonnr"].ToString(); ef.Mobilnr = rowView["Mobilnr"].ToString(); ef.EmailAdr = rowView["EmailAdr"].ToString(); ef.Noter = rowView["Noter"].ToString(); // Vi viser formen som en dialog, og tester hvilken knap brugeren har trykket på vha. DialogResult. if (ef.ShowDialog() == DialogResult.OK) { // Hvis brugeren trykkede på OK sætter vi værdierne i Row'en til de værdier brugeren har tastet ind. rowView["Navn"] = ef.Navn; rowView["Adresse"] = ef.Adresse; rowView["Postnr"] = ef.Postnr; rowView["Byen"] = ef.Byen; rowView["Telefonnr"] = ef.Telefonnr; rowView["Mobilnr"] = ef.Mobilnr; rowView["EmailAdr"] = ef.EmailAdr; rowView["Noter"] = ef.Noter; //opdaterer Adapteren builderOpbygning(); da1.Update(ds); } } } } } private void builderOpbygning() { cBuilderKunder = new OleDbCommandBuilder(da1); cBuilderFaktura = new OleDbCommandBuilder(da2); da1.UpdateCommand = cBuilderKunder.GetUpdateCommand(); da1.DeleteCommand = cBuilderKunder.GetDeleteCommand(); da2.UpdateCommand = cBuilderFaktura.GetUpdateCommand(); }