вот мой класс
public class Student
{
public int StudentId { get; set; }
public string Name { get; set; }
public int DeptId { get; set; }
public Dept Dept { get; set; }
}
Для показа списка я использую ado.net.вот мой контроллер:
public ActionResult Index()
{
StudentRepo repo = new StudentRepo();
List<Student> students = repo.GetStudent().ToList();
return View(students);
}
Метод GetStudent
public List<Student> GetStudent()
{
connection();
List<Student> stdList = new List<Student>();
SqlCommand com = new SqlCommand("Sp_GetStudent", con);
com.CommandType = CommandType.StoredProcedure;
SqlDataAdapter da = new SqlDataAdapter(com);
DataTable dt = new DataTable();
con.Open();
da.Fill(dt);
con.Close();
foreach (DataRow dr in dt.Rows)
{
Dept dpt = new Dept();
dpt.DeptId = Convert.ToInt32(dr["DeptId"]);// here found student Id
dpt.Name = Convert.ToString(dr["Name"]);// here found student name
stdList.Add(
new Student
{
StudentId = Convert.ToInt32(dr["StudentId"]),
Name = Convert.ToString(dr["Name"]),
Roll = Convert.ToString(dr["Roll"]),
DeptId = Convert.ToInt32(dr["DeptId"]),
Dept = dpt
}
);
}
return stdList;
}
, а бритва:
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.Roll)
</td>
<td>
@Html.DisplayFor(modelItem => item.Dept.Name)
</td>
</tr>
}
Процедура сохранения:
select StudentTbl.StudentId,StudentTbl.Name,StudentTbl.ROll, StudentTbl.DeptId,DeptTbl.Name
from Demo.dbo.StudentTbl inner join
Demo.dbo.DeptTbl ON StudentTbl.DeptId = DeptTbl.DeptId
В настоящее время отображается идентификатор отдела.Теперь проблема в списке, я не знаю, как показать название отдела.Как я могу этого достичь?Любая помощь будет принята с благодарностью.
Редактировать: Теперь, когда я связываю данные Dept в объекте dpt, он находит StudentTbl Id & Name