Skip to main content

Update requires a valid UpdateCommand when passed DataRow collection with modified rows


This is an error, with which i was dumbfounded for weeks. The problem is simple. I have a DataSet and it automatically generates INSERT command. So i can add rows to the DataSet and update it easily. But whenever i change values in existing rows and update it via TableAdapter, I get this exception "Update requires a valid UpdateCommand when passed DataRow collection with modified rows". I found inside the generated code that only INSERT command is generated. Whatever i try, the DataSet designer would not create an UPDATE command nor a DELETE command for this TableAdapter.

Solution 1:

You can select the TableAdapter and write your own query for the update command in the property dialog box.

But this is not a good idea.

Solution 2: (Better one)

The problem lies within your table design. Check it out again and check whether you have created a primary key for the table. Mostly this will be the case, as I forgot to create one. Now after creating the primary key, you can recreate the DataSets to get the corresponding UPDATE and DELETE statements.

But if you do not want a primary key in your table, you may resort to first solution.


Cheers.

Comments

Unknown said…
Well, I was looking for something what exactly was the solution 1 you have provided...

Thanks for the useful post :)
Unknown said…
Thanks from Chile!
niteskunk said…
Was having the exact same problem. Thanks so much for the easy fix!
Suncat2000 said…
Incredible. Thanks for documenting that a Primary Key was necessary for the Update and Delete methods to be generated.

I find it dumbfounding that Microsoft leaves out such critical information. Thank you for filling in the blank!
kilad said…
Fina-fuckin-lly someone with a non convoluted answer.

Thank you very much.
Unknown said…
This comment has been removed by the author.
Mike said…
Did not fix it for me. I have a primary key (on a BIGINT) which is unique. WIth the MySqlCommandBuilder(MySqlDataAdapter).GetUpdateCommand() I have a command with a bunch of paramters. But the parameters for that command are all null. Though they have the right DataType...
Regev Porat said…
Thanks... (forgot the PK)
Karthik said…
Thanks a lot for your advice...working for me
Sukhada said…
Thanks it really helped a lot to fix the problem

Featured

Installation of rvm erroring out in Catalina - Ruby 2.3.x - How to solve them?

If you had recently updated your macOS to Catalina and then faced problem with installing certain versions of ruby because of random error, pls try the following.
If you are getting the following error, while doing a rvm install
Error running '__rvm_make -j8',
Try the following:
Possiblility is that because of openssl 1.1. OpenSSL 1.1 is not compatible with the ruby compilation during the rvm install.
First install openssl 1.0 using macports
$ sudo port install openssl10
Now install (reinstall) the ruby using rvm with openssl pointing to the macports version
$ PKG_CONFIG_PATH=/opt/local/lib/openssl-1.0/pkgconfig rvm reinstall 2.3.7 --with-openssl-lib=/opt/local/lib/openssl-1.0 --with-openssl-include=/opt/local/include/openssl-1.0
Just ensure that the openssl from macports is installed into /opt/local/lib/openssl-1.0
Hope this helps.
Talk to me on TwitterFacebookLinkedIn or Website

Popular Posts