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 tema 
 
Forsvar & beredskab 
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
 
 
	
		
								
					
				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.