如何使用数据库检查复选框列表

时间:2017-09-20 06:21:24

标签: asp.net checkbox checkboxlist

我有CheckBoxList并希望在编辑按钮上检查它。如果数据库中的列具有值,则将检查否则未选中。复选框列表值来自数据库。

显示错误:

  

指数超出范围。必须是非负数且小于集合的大小。

调试时:

Chk_seat.Items[j].Selected = true;

我该怎么做?

这是我的代码:

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

1 个答案:

答案 0 :(得分:0)

dsSeat.Tables[0].Columns.Count可能大于CheckBoxList的大小/长度,这就是您收到此错误的原因:

  

Index was out of range。必须是非负数且小于集合的大小。