2011-04-21 3 views
0

학생 테이블의 StudentID에 바인딩되는 레이블 템플릿 필드에서 값을 가져와야합니다. StudentID 값을 가져 와서 다른 테이블에 삽입하고 싶습니다.템플릿 필드 읽기 ssqlDatabase 필드에 바인딩되는 레이블 값

다음
<asp:GridView ID="GridView2" 
         style="position:absolute; top: 232px; left: 311px;" 
          AutoGenerateColumns="false" runat="server" 
         DataSourceID="SqlDataSource4"> 
         <Columns> 
          <asp:TemplateField> 
          <ItemTemplate > 
          <asp:CheckBox runat="server" ID="AttendanceCheckBox" /> 
          </ItemTemplate> 
          </asp:TemplateField> 
          <asp:TemplateField> 
          <ItemTemplate> 
          <asp:Label ID="studentIDLabel" Text='<%# Eval("StudentID") %>' runat="server"></asp:Label> 
          </ItemTemplate> 
          </asp:TemplateField>      
          <asp:BoundField DataField="Name" HeaderText="Name" /> 
         </Columns> 
        </asp:GridView> 

<asp:SqlDataSource ID="SqlDataSource4" runat="server" 
         ConnectionString="<%$ ConnectionStrings:RegisterConnectionString %>" 
         SelectCommand="SELECT [StudentID], [Name] FROM [Student] WHERE CourseID = @CourseID ">       
         <SelectParameters> 
          <asp:ControlParameter ControlID="CourseDropDownList" Name="CourseID" 
           PropertyName="SelectedValue" Type="Int32" /> 
         </SelectParameters> 
        </asp:SqlDataSource> 

다른 데이터베이스 테이블에 값을 삽입하는 뒤에 내 코드입니다 : 은 여기 내 GRIDVIEW과의 SqlDataSource입니다

protected void SaveRegisterButton_Click(object sender, EventArgs e) 
    { 
      SqlConnection connection; 
      SqlCommand command; 
      int numRowsAdded; 
      int id; 


    foreach (GridViewRow row in GridView2.Rows) 
    { 
     if (((CheckBox)row.FindControl("AttendanceCheckBox")).Checked) 
     { 
      try 
      { 
       bool attendance = true; 

       // Connecting to the database using the connection string in the web.config file 
       connection = new SqlConnection(WebConfigurationManager.ConnectionStrings["RegisterConnectionString"].ConnectionString); 

       // Create an INSERT Sql statement 
       // To prevent an Sql injection attack, we add parameters with names starting with an @ symbol 
       command = new SqlCommand("INSERT INTO Attendance(Present, StudentID, LessonID) VALUES(@Attendance, @StudentID, @LessonID)", connection); 

       command.Parameters.AddWithValue("@Attendance", attendance); 

사람이 레이블 템플리트 내부의 값을 삽입 할 코드를 좀 도와 줄래 필드 (StudentID)를 출석 테이블의 StudentID 필드에 입력합니다. 어떤 도움을 주셔서 감사합니다, 미리 감사드립니다!

답변

1
foreach (GridViewRow row in GridView2.Rows) 
{ 
    if (((CheckBox)row.FindControl("AttendanceCheckBox")).Checked) 
    { 
Int32 StudentID = Convert.ToInt32(((Label)row.FindControl("studentIDLabel")).Text) 
.... 
.... 
} 
+0

도움을 주셔서 감사합니다.이 코드가 작동하는지 확인해 드리겠습니다. – user715115

+0

StudentID에 nvarchar 데이터 형식이 있으면 어떻게됩니까? nvarchar 데이터 형식에 대한 C# 데이터 형식은 무엇입니까? – user715115

+0

문자열 ........ –