I had the same problem & couldn't figure out how to make it work with NO key, but it works fine with a composite key...e.g., in my case a record is uniquely identified by two fields (Site ID & Contact name). Neither field alone is enough. You can use all the fields in the table if you have to.
Up until yesterday, I would have completely agreed with you. Was on to microsoft support and they suggested using technique layed down at the website http://support.microsoft.com/?id=308055 – Go by Code Sample 2.
It's basically saying that the whole row is a primary key. i.e. that row will never be repeated, so therefore is unique. However, what most users can do is copy and paste from a previous row into the AddNewRow for DataGrid.
If they then save this to the db. Next time someone changes, any one of these rows, it'll change the other row as well.
Thanks for posting, and up until yesterday, I would have agreed. Please be sure to test your code to see if this loop hole is there. Can you let us know of your outcome.
Either way, you'll get to see a potential issue, or if yours works I could finally have my solution.