当前位置:编程学习 > C#/ASP.NET >>

请教一个错误

是一个编辑页面,从数据库读出参加会议的部门,添加到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()));
这一句,是不是写错了? --------------------编程问答--------------------

string depName=dr["DEP_NAME"].ToString();
if(lstDep.Contains(depName))
   lstDep.Remove(depName);
--------------------编程问答-------------------- 能否使用RemoveAt方法来实现呢? --------------------编程问答--------------------
引用 3 楼 woshizhaoxuhui 的回复:
能否使用RemoveAt方法来实现呢?

你要保证lstDep.Items.IndexOf(dr["DEP_NAME"].ToString())是个有效的索引才行啊,要么就超出范围出错了 --------------------编程问答-------------------- 这个可以,但问题是用这句的时候总报错 --------------------编程问答-------------------- 在用dr["DEP_NAME"]之前,先判断一下dr是否为null、行数是否大于0、是否存在这一列,然后再取数据。将到数据后,再ToString()之前,要先判断是否为null或者为空,然后才能IndexOf --------------------编程问答-------------------- 调试不是有报错的Message吗?看下是不是像楼上说的有对象为NULL
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,