what is the purpose of command name and command argument for a control example button? when should we go for this?
Have a look at command name and command argument MSDN description.
When you have multiple Button controls on a Web page, use the CommandName property to specify or determine the command name associated with each Button control. You can set the CommandName property with any string that identifies the command to perform. You can then programmatically determine the command name of the Button control and perform the appropriate actions.
The CommandArgument property complements the CommandName property by allowing you to provide additional information about the command to perform. For example, if you set the CommandName property to Sort and the CommandArgument property to Ascending, you specify a command to sort in ascending order.