请教一个错误
是一个编辑页面,从数据库读出参加会议的部门,添加到lstSelectedDep,并且从lstDep中删除对应部门,但是最后一句总是报错,应该怎么修改?--------------------编程问答-------------------- 就是
sSql = "select dep_name from t_MeetingDep where Meeting_id =" + string.Format("{0}", Request.QueryString["MEETING_ID"]).Trim();
dt = DbTools.SqlDataTable(Conn, sSql, "t_Dep");
foreach (DataRow dr in dt.Rows)
{
lstSelectedDep.Items.Add(dr["DEP_NAME"].ToString());
lstDep.Items.RemoveAt(lstDep.Items.IndexOf(dr["DEP_NAME"].ToString()));
}
lstDep.Items.RemoveAt(lstDep.Items.IndexOf(dr["DEP_NAME"].ToString()));
这一句,是不是写错了? --------------------编程问答--------------------
--------------------编程问答-------------------- 能否使用RemoveAt方法来实现呢? --------------------编程问答--------------------
string depName=dr["DEP_NAME"].ToString();
if(lstDep.Contains(depName))
lstDep.Remove(depName);
你要保证lstDep.Items.IndexOf(dr["DEP_NAME"].ToString())是个有效的索引才行啊,要么就超出范围出错了 --------------------编程问答-------------------- 这个可以,但问题是用这句的时候总报错 --------------------编程问答-------------------- 在用dr["DEP_NAME"]之前,先判断一下dr是否为null、行数是否大于0、是否存在这一列,然后再取数据。将到数据后,再ToString()之前,要先判断是否为null或者为空,然后才能IndexOf --------------------编程问答-------------------- 调试不是有报错的Message吗?看下是不是像楼上说的有对象为NULL
补充:.NET技术 , C#