Greetings my fellow devs,
It's a little comforting to see that I'm not the only one who's been pulling his hair out because of this.
Anyways, I thought I'd share my discoveries...
I've had the exact same problem. I tried all of the solutions above, and none of them worked. I did what the ASP.NET guy recommended, and it worked, but I got a new error: "Original_Name" cannot be null... tried every solution above, with no luck.
I got to wondering though, do the "original" values play some kind of role in all this? Does the datasource even store the original values? So I got curious what would happen if I created a SQLDataSource instead of ObjectDataSource... So I created a SqlDataSource from scratch, and it did not include any "Original_" parameters in its Update statement.
1. So I basically created a new update query in my DataSet, and simply deleted all the "Original_" parameters, leaving the WHERE statement as: "WHERE Id = @Id". Build.
2. I then re-created the ObjectDataSource and instead of letting it point to the default Update statement, pointed to my new one. (Which I name, "UpdateByID")
3. Make sure there's no "Original_" parameters, also make sure you delete the OldValuesParameterFormatString property from the ObjectDataSource.
Now it works! Sad workaround, but hey, it works for me. Does this help anyone?
<josh />