login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Opvullen Access DB (Opgelost)

Offline Maarten - 02/08/2010 14:57 (laatste wijziging 02/08/2010 15:20)
Avatar van MaartenErelid Ik heb een Access-database (.mdb) met een aantal tabellen in die geupdate moeten worden met data uit een andere applicatie. Wanneer ik de nodige rijen aanmaak (gaat goed volgens de watches) en de DataAdapter terug opvul met de nieuwe DataTable lijkt de tabel toch niet aangepast. Zie ik iets over het hoofd?

edit: Wanneer ik net na de laatste Console.WriteLine een watch op userAdapter.GetData() zet zit ik weeral met de originele data...

Point is dat er in de huidige tabel een goeie 4000 records zitten en dat ik voor deze testdoeleinden 2 records wil aanmaken. De bedoeling is dus dat alle 4000 records UIT de tabel gegooid worden en dat alle records opnieuw worden aangemaakt (met der tijd dus terug 4000, nu bij gebrek aan testdata 2).

  1. using (GenericAccessDataSetTableAdapters.UsersTableAdapter userAdapter = new GenericAccessDataSetTableAdapters.UsersTableAdapter())
  2. {
  3. // Get the data from the DataTable
  4. using (GenericAccessDataSet.UsersDataTable users = userAdapter.GetData())
  5. {
  6. Console.WriteLine("GenerateMDB: Removing " + users.Count + " records from [Users]");
  7. users.Clear();
  8.  
  9. // Get all contacts where (extranet = true or eNews = true) AND organization != [snip ;-)]
  10. Console.WriteLine("GenerateMDB: Retrieve all contacts");
  11. var contacts = (
  12. from c in XrmContext.contacts
  13. where (c.qess_extranet == true || c.qess_enews == true) && c.parentcustomerid.Value != new Guid("DD76B167-0A9E-DF11-A2C1-000C294F6A9A")
  14. select c);
  15.  
  16.  
  17. foreach (var contact in contacts)
  18. {
  19. // Construct user row
  20. GenericAccessDataSet.UsersRow row = users.NewUsersRow();
  21.  
  22. row.UserID = contact.qess_idcontact;
  23.  
  24. // ... enzovoort enzovoort
  25.  
  26. // Add the row
  27. users.Rows.Add(row);
  28. }
  29.  
  30. // Reinject the data
  31. Console.WriteLine("GenerateMDB: Fill [Users]");
  32. userAdapter.Fill(users);
  33. Console.WriteLine("GenerateMDB: " + users.Count + " written to [Users]");
  34. }
  35. }


edit 2: Zelf opgelost: query toegevoegd op de dataAdapter die eerst een DELETE-query aanroept zodat ik een Clear-methode heb op m'n adapter ipv op de DataTable. Also, userAdapter.Fill moest userAdapter.Update zijn... 

0 antwoorden

Gesponsorde links
Er zijn nog geen reacties op dit bericht.
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.16s