I found the solution as follows:
1- in the where clause: Change the Rec_ID into any other name like ID for example.
before: UpdateCommand="Update Contacts Set Room_No=@Room_No Where [Rec_ID]=@Rec_ID">
after : UpdateCommand="Update Contacts Set Room_No=@Room_No Where [Rec_ID]=@ID">
2- in the UpdateParameters get the value of ID as such:
before: <asp:Parameter Name="Rec_ID" Type="Int32" />
after: <asp:ControlParameter ControlID="DetailsView1" Name="ID" PropertyName="SelectedValue" />
this will allow you to keep the Rec_ID as read only or even remove hide it from the DetailsView
Thanks for all of you