未将对象引用设置到对象的实例??如何解决??
在版主后台管理信息中,想要提供版主修改推荐信息的功能,就是版主可以修改哪条信息是推荐信息,哪条信息是非推荐信息,在gridview中,用一个checkbox控件绑定是否为推荐,推荐用打勾,非推荐为不打勾。版主可以进行修改。在CheckBox1_CheckedChanged点击事件中,老是提醒说“未将对象引用设置到对象的实例”的错误。我现在把代码发给各位高手看下,看能不能帮我解决。很急啊,老师就要检查了,要做一点后台管理给老师看看,我好交差啊。。谢谢。。。
protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
CheckBox chk = sender as CheckBox;
GridViewRow row = chk.NamingContainer as GridViewRow;
string sqlconstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
SqlConnection conn = new SqlConnection(sqlconstr);
conn.Open();
string if_recommend = "0";
CheckBox CheckBox1 = (CheckBox)(row.FindControl("CheckBox1"));
if (CheckBox1.Checked == true)
{
if_recommend = "1";
}
string sqlstr = "update [Message] set if_recommend='" + if_recommend + "'";
sqlstr += " where Mid='" + gvNewsList.DataKeys[row.RowIndex].Value.ToString() + "'";
SqlCommand cmd = new SqlCommand(sqlstr, conn);
cmd.ExecuteNonQuery();
gvNewsList.EditIndex = -1;
conn.Close();
bindgrid();
}
小妹我在这里谢谢大家了。。。
------解决方案--------------------不会调试?这种问题是最简单的。gvNewsList.DataKeys[row.RowIndex]看看这个是不是null 或者gvNewsList.DataKeys[row.RowIndex].Value 是不是null,或者CheckBox1这个是不是null
------解决方案--------------------把异常信息也贴上来,好准确定位问题
通常是某对象未正确实例化或未找到
例如:
CheckBox CheckBox1 = (CheckBox)(row.FindControl("CheckBox1")); //如果CheckBox未找到,CheckBox1 为 null
if (CheckBox1.Checked == true) //这行就会报错,因为CheckBox1为null,不会存在Checked属性
{
if_recommend = "1";
}
------解决方案--------------------
CheckBox CheckBox1 = (CheckBox)(row.FindControl("CheckBox1"));
加一个单元格试试
CheckBox CheckBox1 = (CheckBox)(row.cell[CheckBox1所在的单元格索引].FindControl("CheckBox1"));
CheckBox1是不是又放到单元格中其它容器控件中了?
row.FindControl("CheckBox1")没找到"CheckBox1。
------解决方案--------------------当得到的值是空值null的时候会报未将对象引用到实例
------解决方案--------------------