2011-04-21 1 views
0

Je dois obtenir la valeur du champ Modèle d'étiquette qui est lié à StudentID dans la table des étudiants. Je veux obtenir la valeur StudentID et l'insérer dans une table différente. Voici mon Gridview et SQLDataSource:Champ de modèle de lecture Valeur d'étiquette thats liée à sqlDatabase Champ

<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> 

Voici mon code derrière lequel insère des valeurs dans une autre table de base de données:

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); 

Quelqu'un peut me aider avec le code à insérer la valeur dans le modèle d'étiquette Field (StudentID) dans le champ StudentID dans la table de présence. Toute aide est très appréciée, merci d'avance!

Répondre

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

Merci pour votre aide je vais vérifier ce code voir si cela fonctionne! – user715115

+0

Que faire si le StudentID a le type de données nvarchar? Quel est le type de données C# pour un type de données nvarchar? – user715115

+0

Chaîne ........ –

Questions connexes