2017-09-20 9 views
0

J'ai CheckBoxList et je veux le vérifier sur le bouton d'édition. Si la colonne dans la base de données a une valeur, elle sera cochée sinon cochée. Les valeurs de liste de cases à cocher proviennent de la base de données.comment cocher la liste de cases à cocher en utilisant la base de données

Il montre l'erreur:

Index was out of range. Must be non-negative and less than the size of the collection.

Lors du débogage sur:

Chk_seat.Items[j].Selected = true; 

Comment puis-je faire cela?

Voici mon code:

<asp:CheckBoxList ID="Chk_seat" runat="server" RepeatDirection="Horizontal"> 
</asp:CheckBoxList> 

public void updatefields_seat(long CarID) 
{ 
    SqlConnection cn = new SqlConnection(connection); 
    string qry = @"SELECT [ID] 
       ,[ReferenceID] 
       ,[CarID] 
       ,[Child-Seat] 
       ,[Leather-Seat] 
       ,[Power-Seat] 
       ,[Navigation-System] 
       ,[Power-Steering] 
       ,[Bucket-Seat] 
       ,[IsActive] 
       FROM [dbo].[Seat_tbl] Where CarID=" + CarID + ""; 

    DataSet dsSeat = new DataSet(); 
    dsSeat = cm.GetQryInDataset(qry); 

    if (dsSeat.Tables.Count > 0) 
    { 
     for (int i = 0; i < dsSeat.Tables[0].Rows.Count; i++) 
     { 
      for (int j = 0; j < dsSeat.Tables[0].Columns.Count; j++) 
      { 
       if (dsSeat.Tables[0].Rows[i]["Child-Seat"].ToString() != "") 
       { 
        Chk_seat.Items[j].Selected = true; 
       } 
      } 
     } 
    } 
} 
+0

Asif.Ali. Merci mec. J'ai résolu ce problème après avoir lu votre commentaire. Avant je n'ai pas eu le problème. –

Répondre

0

dsSeat.Tables[0].Columns.Count pourrait être supérieure à la taille/longueur de votre CheckBoxList qui est la raison pour laquelle vous obtenez cette erreur:

Index was out of range . Must be non-negative and less than the size of the collection.