Skip to main content

Featured

Ruby Tips - How to figure out where a method is defined

The other day when I was dabbling with the huge codebase, I was wondering where a particular method was being declared for a specific method. I wanted to know this because my greps didn't turn out to volatile and didn't return any results



The Solution The Ruby interpreter has certain methods that can be used for identifying under which module or class, the particular method is being defined. See the example below.

So using the .source_location you will be able to figure which file it has been declared.

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

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

Thanks for the useful post :)
Appia 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.
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 keyan said…
Thanks a lot for your advice...working for me
Sukhada said…
Thanks it really helped a lot to fix the problem

Popular Posts

You will receive wonderful short stories written by him and inspirational articles once every month.