You aren't updating the primary key - which you say is sstudentid - you are updating the data for that student, and that student only.
Look at your UPDATE statement (I've taken out the miscelaneous stuff so you can see the important bit):
str = "UPDATE StudentRegister SET sname = @sname, ... , sdatereg=@sdatereg WHERE sstudentid = @sstudentid"
You don't list the sstudentid in the SET Clause, just in the WHERE - and only columns which are specified in the SET clause will be changed. The WHERE clause defines which row(s) will be updated. In this case because your WHERE clause references the primary key, only one row will be changed as primary key values must be unique.
BTW: It's a good idea to use UPPER CASE for SQL keywords and it makes them "stand out" better in a complex SQL statement.