我正在使用以下代码来检查以前添加到复选框列表中的db表中的值,但是在这里出现“对象引用未设置为对象实例”错误:
ListItem currentCheckBox = chkbx.Items.FindByValue(rdr["MemberID"].ToString());
这是代码,谢谢您的帮助!
SqlDataReader rdr = null; SqlConnection conn = new SqlConnection(GetConnectionString()); SqlCommand cmd5 = new SqlCommand("SELECT MemberID FROM ProjectIterationMember WHERE ProjectIterationID IN (SELECT ProjectIterationID FROM Iterations WHERE ProjectID = '" + proj_id + "')", conn); try { conn.Open(); rdr = cmd5.ExecuteReader(); CheckBoxList chkbx = (CheckBoxList)FindControl("project_members"); while (rdr.Read()) { ListItem currentCheckBox = chkbx.Items.FindByValue(rdr["MemberID"].ToString()); if (currentCheckBox != null) { currentCheckBox.Selected = true; } } } finally { if (rdr != null) { rdr.Close(); } if (conn != null) { conn.Close(); } }
要么rdr["MemberID"]返回null或chkbx为空作为控制找不到。rdr[0]在这种情况下,请尝试替代,在第二种情况下,请确保找到了您的控件。
rdr["MemberID"]
chkbx
rdr[0]