获取错误“NoRowatPosition0”用户代码未解决超出范围的异常”这是我的代码protectedvoidPage_Load(objectsender,EventArgse){MTMSServiceobj=newMTMSService();DBAccessdb=newDBAccess();{MTMSDTOobjc=newMTMSDTO();{objc.TaskID=Convert.ToInt32(Session["TaskID"]);数据集rep=obj.GetReports(objc);DataViewRprts=newDataView();Rprts.Table=rep.Tables[0];LblTask??ID.Text=代表。Tables[0].Rows[0]["TaskID"].ToString();LblTask??Name.Text=rep.Tables[1].Rows[0]["TaskName"].ToString();LblDueDate.Text=代表。Tables[2].Rows[0]["DueDate"].ToString();LblDescription.Text=rep.Tables[3].Rows[0]["描述"].ToString();LblAssignBy.Text=代表。Tables[4].Rows[0]["AssignBy"].ToString();LblStatus.Text=rep.Tables[5].Rows[0]["状态"].ToString();LblPercentageComplete.Text=代表。Tables[6].Rows[0]["PercentageComplete"].ToString();LblTask??Name.Visible=true;LblAssignBy.Visible=true;LblDescription.Visible=真;LblDueDate.Visible=true;LblStatus.Visible=true;LblPercentageComplete.Visible=true;LblAssignTo.Visible=false;你没有检查你的表是否有任何信息消息很清楚-位置0处没有行。它可以抛出这一行,或者按照它:LblTask??ID.Text=rep.Tables[0].Rows[0]["任务ID"].ToString();在尝试从中获取数据之前,您应该检查行是否存在。类似的东西(在使用之前验证语法-这根本没有经过测试):vartable=rep.Tables[0];if(table.Rows.Count>0){//获取数据...}else{//以适当的方式处理丢失的数据...}前面的建议都很好,你应该遵循它。但是,我很清楚0处没有行的原因是您看错了表。我严重怀疑你在一个表中有id,在另一个表中有名称,等等,但是你正在为每条数据索引到不同的表中。rep.Tables[1]rep.Tables[2]rep.Tables[3]rep.Tables[4]rep.Tables[5]rep.Tables[6]应该都是rep.Tables[0]你必须只有一个表,而是在看表0到表6!请在访问任何内容之前检查项目。这样做之后,如果仍然发生,请检查列名是否准确?例如,“TaskID”真的是“TaskId”并且索引失败了吗?这些项目最后是否可以为空?如果在空字段上调用??ToString()不是您想要的。以上是C#学习教程:报错“Nolineatposition0”。涉及侵权,请点击维权联系管理员删除。如需转载请注明出处:
