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

时间:2014-06-16 13:33:19

标签: c# asp.net sql sql-server

我用C#后端学习ASP.NET。我正在尝试运行"查询查询"。 (至少那是我所教的内容,这是在大学里用PHP调用的。)

我有一个通过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>

1 个答案:

答案 0 :(得分:0)

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)