我目前有一个名为Attendance的SQL表和另一个名为Student的表。出勤表包含以下字段:出勤ID,日期,现在,学生ID和模块ID。我的学生表包含StudentID和Name字段。我的应用程序中的一个页面允许用户在文本框中输入学生ID,其中来自考勤表的所有日期,现在,ModuleID都显示在Gridview中,用于在文本框中输入的相应StudentID。到目前为止,这是我的代码:
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:RegisterConnectionString %>"
SelectCommand="SELECT * FROM [Attendance] WHERE ([StudentID] = @StudentID)">
<SelectParameters>
<asp:ControlParameter ControlID="pnumTextBox" Name="StudentID"
PropertyName="Text" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
<asp:GridView ID="GridView1" runat="server"
style="position:absolute; top: 241px; left: 357px; width: 356px;"
AutoGenerateColumns="False" DataKeyNames="AttendanceID"
DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundField DataField="AttendanceID" HeaderText="AttendanceID"
InsertVisible="False" ReadOnly="True" SortExpression="AttendanceID" />
<asp:CheckBoxField DataField="Present" HeaderText="Present"
SortExpression="Present" />
<asp:BoundField DataField="Date" HeaderText="Date" SortExpression="Date" />
<asp:BoundField DataField="StudentID" HeaderText="StudentID"
SortExpression="StudentID" />
<asp:BoundField DataField="ModuleID" HeaderText="ModuleID"
SortExpression="ModuleID" />
</Columns>
</asp:GridView>
除了显示AttendanceID,StudentID,ModuleID,Present和Date之外,我还要显示Student Table中的Student Name字段,该字段与文本框中输入的ID相同,我该如何实现?我认为可以在SELECT命令中执行此操作,但我不确定如何。感谢任何帮助,提前谢谢!
答案 0 :(得分:0)
SELECT A.AttendanceID,A.Date,A.Present,A.ModuleID,S.StudentID,S.Name
FROM attendance A ,student S
WHERE A.StudentID = S.StudentID
AND S.StudentID = "Your Value from the textbox";
INNER JOIN
我更喜欢使用objectDataSource
而不是SQLDataSource
。
分离你的图层。并使用parameterized query
来避免sql注入并验证用户条目。