从先前检索的记录查询数据集
本文关键字:记录 查询 数据集 检索 | 更新日期: 2023-09-27 18:09:01
我正在学习ASP。. NET和c#后端。我正试图运行一个"查询查询"。(至少在我上大学的时候,别人是这么教我的。)
我有一个通过SQL语句检索到的记录集(特定学生的成绩)。该声明有一个"学生ID"和他们的年级。现在,在单独的数据库中,在一个表中,我有学生的名字和他们的学生号。
我想让数据库提取成绩记录,然后查询学生姓名表,并根据检索到的记录显示学生的姓名。
我知道我可以为学生的名字创建一个新的记录集,然后将检索到的ID的查询参数传递给新的SQL查询。它是如何格式化的?是否存在最佳实践?
这是我用来拉学生成绩的。
<asp:SqlDataSource ID="rs_ViewGradeData" runat="server"
ConnectionString="<%$ ConnectionStrings:PDACConnectionString %>"
SelectCommand="SELECT *
FROM [tblGrades] AS t
WHERE ([studentID] = @studentID)">
<SelectParameters>
<asp:QueryStringParameter Name="studentID" QueryStringField="sid" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
学生数据库在同一台服务器上,只是不同的数据库。
是否不可能从上面的查询中取出studentID并将其用作下面查询的参数?我在上面的查询中使用了AS,并试图在下面使用它。
<asp:SqlDataSource ID="rs_Students" runat="server"
ConnectionString="<%$ ConnectionStrings:DBStudentsConnectionString %>"
SelectCommand="SELECT [userID]
, [userFName]
, [userLName]
FROM [tblStudents]
WHERE [userID] = @[t.studentID]"
OnSelecting="SqlDataSource1_Selecting">
<SelectParameters>
<asp:FormParameter FormField="studentID" Name="studentID" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
SELECT g.StudentId, g.Grade, sn.Name
FROM db1.dbo.tblGrades g
INNER JOIN db2.dbo.tblStudentName sn
ON g.StudentId = sn.StudentId
WHERE (g.studentID = @studentID)