That is a very, very bad idea.
Even if it worked, getting the highest number from the database and incrementing it by one does not ensure that teh number is unique - indeed, it may not be unique by the time you exit the method. Remember that SQL server is designed
to work in a multiuser environment, so you have to assume that another user or users will be doing the exact same code at the exact same time. You should never, ever try to predict the "next value" of an identity field in advance - get the value for the row after you have inserted a new row and you are fine, but getting it in advance is just asking for complicated trouble in production.
"Then Sir what will be the command to be execute for getting next row????"
You don't. You only get the id of a row after you have created it. The easy way is to do the insert and select as a single operation:
INSERT INTO MyTable (UserName, UserRole) VALUES ('My Name', 666);
Because this is executed as a single statement by SQL, it will return the value given to the Identity field by the insert.