Verifique nesta linha
cmd.Parameters.Clear();
cmd.CommandText = "UPDATE contacts SET EMAIL = @EMAIL,
CELL_NO = @CELL_NO Where STUDENT_NO = @STUDENT_NO";
cmd.Parameters.AddWithValue("@EMAIL", email_txt.Text);
cmd.Parameters.AddWithValue("@CELL_NO", contact_txt.Text);
cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
Mudar para
cmd.Parameters.Clear();
cmd.CommandText = "UPDATE contacts SET EMAIL = @EMAIL,
CELL_NO = @CELL_NO Where STUDENT_NO = @STUDENT_NO";
cmd.Parameters.AddWithValue("@EMAIL", email_txt.Text);
cmd.Parameters.AddWithValue("@CELL_NO", contact_txt.Text);
cmd.Parameters.AddWithValue("@STUDENT_NOL",studentNo_txt.Text);
cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
você está limpando os parâmetros, mas depois disso use
@STUDENT_NO
parâmetro. Este parâmetro não é declarado em nenhum lugar depois de limpar os parâmetros