索引超出范围。必须为非负值并小于集合大小。
索引超出范围。必须为非负值并小于集合大小。参数名: index
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。
参数名: index
源错误:
行 41: operate op = listop[0];
源程序如下:
public partial class qs_rizhi_peiyueadd : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
string id = this.Request.QueryString["w_id"];
int wid = Int32.Parse(id);
worklog wl = worklogBLL.Select(wid);
int uid = wl.w_u_id;
users us = usersBLL.Select(uid);
this.txtUname.Text = us.u_username;
this.txtBiaoTi.Text = wl.w_title;
this.txtNeiRong.Text = wl.w_content;
//取当前登陆人名进入页面就附上批阅人
users loginuser = Session["loginuser"] as users;
int uidd = loginuser.u_id;
string where5 = "op_u_id='{0}'";
where5 = string.Format(where5, uidd);
IList<operate> listop = operateBLL.Select(where5);
operate op = listop[0];
int quanxian = op.op_pop_id;
if (loginuser == null)
{
this.Response.Write(string.Format(GetRedirect.ALLREDIRECT, "../login.aspx"));
return;
}
else if (quanxian < 1)
{
this.Response.Write(string.Format(GetRedirect.WINALERT, "您没有批阅条件"));
this.Response.Write(string.Format(GetRedirect.REDIRECT, "rizhipiyue.aspx"));
}else
{
string LoginName = loginuser.u_username;
this.txtPeiId.Text = LoginName;
}
}
baidu zhidao 上有个朋友告诉我:
源错误:
行 41: operate op = listop[0];
这表示listop里面没有数据,是一个空集合,你可以在取listop集合时先判断一下里面是否有数据,下面是代码
int quanxian = 0;
if(listop.count>0)
{ operate op = listop[0];
quanxian = op.op_pop_id;
}
我照着把代码粘进去了,可是又出错了。
编译器错误消息: CS0117: “System.Collections.Generic.IList<COM.OA.Entity.operate>”并不包含“count”的定义
请问应该改成什么?或者有没有别的方法怎么改一下?谢谢! --------------------编程问答-------------------- LZ先写下Listop然后打.看看后面有没有Count这个属性.... --------------------编程问答-------------------- 应该是listop.count不存在吧 --------------------编程问答-------------------- List<T> lst=new List<T>();
if(lst.Count>0)
{}
补充:.NET技术 , C#