从先前检索的记录查询数据集

本文关键字:记录 查询 数据集 检索 | 更新日期: 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)