0

大学のモジュール データをグリッドビューに取り込もうとしていますが、モジュールが必須の場合のみです。誰でもこれを行う方法を知っていますか?

以下は、SQL データソースを含む ASPX コードです。

 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
        DataKeyNames="Module_Code" DataSourceID="SqlEnteringLevel">
        <Columns>
            <asp:BoundField DataField="Module_Code" HeaderText="Module_Code" 
                ReadOnly="True" SortExpression="Module_Code"></asp:BoundField>
            <asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title">
            </asp:BoundField>
            <asp:BoundField DataField="Semester" HeaderText="Semester" 
                SortExpression="Semester"></asp:BoundField>
            <asp:BoundField DataField="CATS" HeaderText="CATS" SortExpression="CATS">
            </asp:BoundField>
            <asp:CheckBoxField DataField="Compulsory" HeaderText="Compulsory" 
                SortExpression="Compulsory"></asp:CheckBoxField>
            <asp:BoundField DataField="Course" HeaderText="Course" SortExpression="Course">
            </asp:BoundField>
            <asp:BoundField DataField="Level" HeaderText="Level" SortExpression="Level">
            </asp:BoundField>
        </Columns>
    </asp:GridView>
<asp:button runat="server" text="Next" ID="BtnNext" TabIndex="1"/>
    <asp:Button ID="BtnReturn" runat="server" 
    Text="Return to Registration Page" TabIndex="2" />
<asp:SqlDataSource ID="SqlCurrentLevel" runat="server" 
    ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
    SelectCommand="SELECT [Level] FROM [Student_Academic_Record] WHERE ([Student_No] = @Student_No)">
    <SelectParameters>
        <asp:SessionParameter DefaultValue="Student" Name="Student_No" 
            SessionField="Student" Type="String" />
    </SelectParameters>
</asp:SqlDataSource>
<asp:SqlDataSource ID="SqlEnteringLevel" runat="server" 
    ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 


    SelectCommand="SELECT DISTINCT Module_Details.Module_Code, Module_Details.Title, Module_Details.Semester, Module_Details.CATS, Module_Details.Compulsory, Student_Academic_Record.Course, Module_Timetable.Level FROM Module_Details INNER JOIN Module_Timetable ON Module_Details.Module_Code = Module_Timetable.Module_Code INNER JOIN Student_Academic_Record ON Module_Timetable.Course = Student_Academic_Record.Course WHERE (Module_Timetable.Level = @Level) AND (Student_Academic_Record.Course = @Course)">
    <SelectParameters>
        <asp:SessionParameter DefaultValue="EnteringLevel" Name="Level" 
            SessionField="EnteringLevel" />
        <asp:SessionParameter DefaultValue="Course" Name="Course" 
            SessionField="Course" />
    </SelectParameters>
</asp:SqlDataSource>
<asp:SqlDataSource ID="SqlCourse" runat="server" 
    ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
    SelectCommand="SELECT [Course] FROM [Student_Academic_Record] WHERE ([Student_No] = @Student_No)">
    <SelectParameters>
        <asp:SessionParameter DefaultValue="Student" Name="Student_No" 
            SessionField="Student" Type="String" />
    </SelectParameters>
</asp:SqlDataSource>

その時点で、ログインしている学生に応じて、コースとレベルに関連付けられているすべてのモジュールが表示されます。

誰でも助けることができますか?

4

2 に答える 2

0

SELECTステートメントを変更して、フィールドのWHERE句パラメーターを含めることはできませんか-それが列であると仮定します:CompulsoryModule_Details.Compulsory = 1bit

SelectCommand= _
"SELECT DISTINCT Module_Details.Module_Code, Module_Details.Title, " & _
     "Module_Details.Semester, Module_Details.CATS, Module_Details.Compulsory, " & _
     "Student_Academic_Record.Course, Module_Timetable.Level " & _
"FROM Module_Details " & _
     "INNER JOIN Module_Timetable ON " & _ 
                "Module_Details.Module_Code = Module_Timetable.Module_Code " & _
     "INNER JOIN Student_Academic_Record ON " & _
                "Module_Timetable.Course = Student_Academic_Record.Course " & _
 "WHERE (Module_Timetable.Level = @Level) " & _
     "AND (Student_Academic_Record.Course = @Course) " & _
     "AND Module_Details.Compulsory = 1">
于 2013-04-11T10:13:57.260 に答える
0

SqlDataSource SqlEnteringLevel少しだけ改造してみてはいかがでしょうか。

あなたのSelectCommandように見えるはずです。

SelectCommand="SELECT........WHERE (Module_Timetable.Level = @Level) AND   
                             (Student_Academic_Record.Course = @Course) 
                             AND (Module_Details.Compulsory = 'Compulsory')" // add this

したがって、これにより、モジュールresultsetのみが含まれるが得られます。Compulsory

于 2013-04-11T10:15:16.323 に答える