У меня есть набор данных, который содержит таблицы из университетской базы данных, две (на самом деле больше) из этих таблиц содержат отношение многие ко многим, в частности, у меня есть таблица
студентов (Содержит информацию о студентах) Курсы стол (Содержит информацию о курсах) TakesCourses стол (который является промежуточной таблицей между Студентами и Курсами таблицы, каждый студент может иметь много курсов)
Я хочу ввести «идентификатор студента» и извлечь все записи из таблицы Courses в соответствии с записями, найденными в TakesCourses таблица.
Мой код РАБОТАЕТ и выглядит следующим образом:
string stdInfo = string.Empty;
DataRow[] drStudent = null;
DataRow drCourses = null;
DataRow[] drStdCrs = null;
drStudent = universityDS.Tables["Students"]
.Select(string.Format("StudentID='{0}'", txtStudentID.Text));
stdInfo += string.Format("Student {0} {1}:\nTaking Courses:",
drStudent[0]["FirstName"].ToString().Trim(),
drStudent[0]["LastName"].ToString().Trim());
drStdCrs = drStudent[0].GetChildRows(
universityDS.Relations["FK_TakesCourses_Students"]);
//Can I optimize here? Is there a better way to code this
if (drStdCrs.Length > 0)
{
for (int i = 0; i < drStdCrs.Length; i++)
{
drCourses = drStdCrs[i].GetParentRow(
universityDS.Relations["FK_TakesCourses_Courses"]);
stdInfo += string.Format("\nCourse: {0}",
drCourses["CourseName"]);
}
}
MessageBox.Show(stdInfo);
Мой вопрос, как я могу оптимизироватькод после комментариев?Есть ли лучший способ написать это?
(Примечание: я выздоравливающий разработчик, пытаюсь обновить свои навыки)