18. november 2004 - 19:55
Der er
9 kommentarer
Datagrid, opdater i db
Jeg populerer et datagrid med data fra en Access db på følgende måde: private void Form1_Load(object sender, System.EventArgs e) { DataTable customerTable = controller.getCustomerTable(); this.gridCustomer.DataSource = customerTable; } public DataTable getCustomerTable() { OleDbConnection con = null; try { con = new OleDbConnection(SOURCE); dAdapter = new OleDbDataAdapter("SELECT * FROM CUSTOMER", con); dSet = new DataSet(); dAdapter.Fill(dSet,"CUSTOMER"); } catch(OleDbException e) { Console.WriteLine("OleDb error: " + e.Message); } return dSet.Tables["CUSTOMER"]; } Data kommer fint frem i grid'et, men ændringerne gemmes ikke i databasen, når jeg lukket programmet. Hvordan gør jeg det?
Annonceindlæg fra DE-CIX
Edge computing: behandling ved kilden
Edge computing revolutionerer den måde, data behandles på, ved at bringe kapacitet og ydeevne tættere på dér, hvor der er behov for det.
15. april 2025
18. november 2004 - 19:59
#1
Du skal vel kalde: dAdapter.Update(dSet,"CUSTOMER"); når formen lukkes.
18. november 2004 - 20:15
#2
Det har jeg prøvet. Herved får jeg følgende fejl: An unhandled exception of type 'System.InvalidOperationException' occurred in system.data.dll Additional information: Update requires a valid UpdateCommand when passed DataRow collection with modified rows.
18. november 2004 - 20:17
#3
Er det noget med, at jeg, et eller andet sted, skal definere, hvordan min SQL UPDATE på CUSTOMER ser ud?
18. november 2004 - 20:17
#4
Prøv og sæt en: OleDbCommandBuilder cBuilder = new OleDbCommandBuilder(dAdapter); ind
18. november 2004 - 20:25
#5
Kan du uddybe, hvad jeg skal gøre med den?
18. november 2004 - 20:26
#6
Så vidt jeg ved : ingenting Den burde selv assigne en UPDATE kommando til dAdapter
18. november 2004 - 20:27
#7
Hvis det ikke virker kan det dig gøres manuelt
18. november 2004 - 20:42
#8
Det hjalp med... OleDbCommandBuilder cBuilder = new OleDbCommandBuilder(dAdapter); cBuilder.GetUpdateCommand(); dAdapter.Update(dSet,"CUSTOMER"); ...hvis jeg redigerer direkte i grid'et, hvilket helt sikkert er et fremskridt, så tak for det, men jeg har også nogle tekstfelter, som er bundet til felterne via... this.textBoxName.DataBindings.Add("Text",dt,"Name"); this.textBoxAddress.DataBindings.Add("Text",dt,"Address"); this.textBoxZip.DataBindings.Add("Text",dt,"Zip"); this.textBoxCity.DataBindings.Add("Text",dt,"City"); ...hvor dt er min Customer DataTable. Hvis jeg retter i disse felter afspejler ændringerne sig ikke i databasen?! selvom jeg bruger OleDbCommandBuilder
18. november 2004 - 22:08
#9
pas
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.