Также:
HiddenID.Value = ddlStudents.SelectedValue;
lblName.Text = HiddenID.Value;
Я заметил в вашем Авто, что имя было установлено как 1. Так что я думаю, что вы действительно хотите установить его как:
lblName.Text = ddlStudents.SelectedValue;
Я не верю, что установка значения, равного самой себе, пойдет вам на пользу. Проверьте вашу базу данных, столбец для UserEmail допускает обнуляемые значения?
Кроме того, я считаю, что в вашей базе данных приращения UserID начинаются с 1, правильно? SelectedIndex, я полагаю, начинается с 0. Возможно, вам придется увеличить выбранный элемент значения на 1.
Я только что посмотрел на ваш другой вопрос (http://stackoverflow.com/questions/5745820/assign-list-member-to-label) и чувствую, что у меня есть немного больше информации здесь.
Если ваша база данных не поддерживает типы, допускающие обнуляемость, я бы изменил:
CatalogAccess ca=new CatalogAccess();
lblEmail.Visible = true;
lblName.Visible = true;
lblTelephone.Visible = true;
HiddenID.Value = ddlStudents.SelectedValue;
lblName.Text = HiddenID.Value;
lblEmail.Text = ca.GetFullStudentProfile(ddlStudents.SelectedIndex).UserEmail;
lblFamilyName.Visible = true;
lblBirth.Visible = true;
ddlStudents.Items.Clear();
PopulateStudentsDDL();
до:
CatalogAccess ca=new CatalogAccess();
lblEmail.Visible = true;
lblName.Visible = true;
lblTelephone.Visible = true;
// if your table's ID increments starting at 0, otherwise ddlStudents.SelectedIndex + 1
StudentProfile student = GetFullStudentProfile(ddlStudents.SelectedIndex);
if (student != null)
{
lblName.Text = student.UserName;
lblEmail.Text = student.UserEmail;
//rest of the labels going here (I only see Name and Email)
}
...
Вы также можете подумать о том, чтобы ваши звонки делали ярлыки видимыми внутри условного выражения sp! = Null, чтобы эти ярлыки действительно отображались только при наличии действительного лица. В противном случае держите их перед этим.
В противном случае я бы сделал то же самое, что и Дмитрий, и сказал бы
lblName.Text = student.UserName != null ? student.UserName : String.Empty;
lblEmail.Text = student.UserEmail != null ? student.UserEmail : String.Empty;
// etc.
Если возможны обнуляемые значения, объект ученика действительно может быть назначен, но свойства могут и не быть, что может вызвать проблемы вашего приложения во время выполнения.