2011-04-28 2 views
0

현재 Attendance라는 SQL 테이블과 Student라는 테이블이 있습니다. 출석 테이블에는 AttendanceID, Date, Present, StudentID 및 Module ID 필드가 있습니다. 내 학생 표에는 StudentID 및 Name 필드가 있습니다. 내 응용 프로그램의 한 페이지에서 사용자는 텍스트 상자에 Student ID를 입력 할 수 있습니다.이 때, 참석자 테이블의 모든 날짜, 현재, ModuleID는 텍스트 상자에 입력 된 해당 StudentID에 대한 Gridview에 표시됩니다. 입력 한다른 테이블의 레코드 ID를 기반으로 GridView에 다른 테이블 필드 표시

<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는, 현재, 날짜, 나는 동일한 ID를 가진 학생 테이블에서 학생 이름 필드를 표시해야합니다 : 여기에 작동 지금까지 내 코드입니다 텍스트 상자에서 어떻게 이것을 할 수 있습니까? 나는 SELECT 명령에서 이것을 할 수 있다고 생각하지만 Im은 확실하지 않습니다. 어떤 도움을 주셔서 감사합니다, 미리 감사드립니다!

답변

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 내가 objectDataSource보다는 SQLDataSource를 사용하는 것을 선호

가입하세요. 레이어를 분리하고 parameterized query을 사용하여 SQL 삽입을 피하고 사용자 항목의 유효성을 검사합니다.

+1

답변을 주셔서 감사합니다. 그러나 asp.net과 MySQL에 관해서는 초보자입니다. SQL 삽입을 피하기 위해 매개 변수화 된 쿼리를 사용한다는 것은 무엇을 의미합니까? 감사합니다 – user715115

+0

당신은 하루 하루 이러한 모든 개념을 배울 것입니다, 걱정하지 마세요, 나는 하드 쿼리를 작성하는 대신 매개 변수를 사용한다는 것을 의미합니다. 이 링크를 찾으십시오 : http://www.databasejournal.com/features/mssql/article.php/3834501/Parameterized-Queries.htm –

관련 문제