February 8th, 2014, 09:12 AM
tableadapter update method disappeared...
I have a fairly large VB.net system which talks to an underlying MS Access database; until recently all was working well. For one of the tableadapters in the dataset (let me call this Ainfo) I wanted to add a second FILL query, one that would take parameters to show a subset of the data. I managed to work through the Query Builder and things seemed ok.
Now, however, a call to the tableadapter Ainfo.update(...) is marked as an error, that 'update is not a member of Ainfo'. By adding a second query to the Ainfo tableadapter I seem to have broken the original.
OK, clearly there is something going on here I don't understand; so I removed my new query, and I still get the error. I've been working through various autogenerated files, looking at what might have gone wrong with Ainfo; it is by no means obvious. It is time, I think, to lose a few days work and go to an old backup.
My new approach would be to create a second tableadapter with the parameterized query; I can't imagine that that would break the original tableadapter. But I'm deeply suspicious that any changes to the dataset aren't reflected in the autogenerated code - I've seen something like this before when trying to accomodate a new MS Access table by augmenting the dataset. Usually I have to delete the dataset, reimport it, then by hand reestablish all of the relations in the database. This is errorprone and tedious. In fact the entire approach (datasets, table adapters, table adapter managers, bindingsources, bindingnavigators, etc.) seems creaky and brittle, ad hoc, and in places incomplete. More than once I've thought of writing code to rebuild everything from scratch - but that gets squirrely when existing forms have bound controls. I'd appreciate hearing about any approaches others have come up with to work in this environment when there may be moderately frequent dataset structural changes.
But the problem at hand - I'd love to recover the update method for the Ainfo tableadapter; I might try to see if I can just find *that* in a backup and incorporate it by hand. Is there any way to force regeneration of the autogenerated code after a dataset change is made? If there is, do I have to by hand remove the existing autogenerated code?
Click Here to Expand Forum to Full Width