在GridView / DetailsView中显示外键数据

时间:2012-12-21 03:11:51

标签: c# asp.net visual-studio-2010 gridview detailsview

我有两张桌子..

Students

  • StudentID
  • 名称
  • SchoolID

School

  • SchoolID
  • SchoolName。

这是我的方案,我在我的页面上创建了一个DetailsView,显示了X StudentID及其列。当显示SchoolID(来自Students表)列时,它将显示实际的ID。

我想知道如何显示实际的学校名称而不是schoolID,我先做的只是在第一个查询中查询,显示学校的名称,如...

SELECT StudentID, (SELECT SchoolName FROM Schools 
                WHERE Schools.SchoolID = Students.SchoolID) 
                FROM Students WHERE StudentID=1

虽然这可行,但在尝试通过GridView编辑记录时会产生问题,但它不会在这些字段中保存正确的数据。

GridView的编辑步骤中,我可以将SchoolID键与SchoolName绑定,但是在查询中进行查询时,这将不起作用。

所以我的问题是如何在不改变SQL命令的情况下在Visual Studio中显示外键数据?

2 个答案:

答案 0 :(得分:1)

之前的解决方案是编辑Select命令(在创建SQLDatasource之后)以在包含有意义字段名称的表上执行内部联接。

点击此处

<强> 1。Link

<强> 2。Link

答案 1 :(得分:1)

您可以使用加入查询来执行此操作,例如:

select students.StudentId,students.Name,students.SchoolID,school.SchoolName from students join school on students.SchoolID=school.SchoolID

而且,为了更好地理解“JOINS”,这里有用的链接:http://www.sitepoint.com/understanding-sql-joins-mysql-database/

相关问题