asp.net Repeater 第二次绑定出现 “未将对象引用设置到对象的实例。”

u010393040 2014-10-14 11:32:59

public void BindrepStudentList(int num)
{
DataTable dt = StudentBll.GetInfoByNum(num);
this.repStudentList.DataSource = dt;
this.repStudentList.DataBind();
dt = null;
}
这里的参数num是下面sql 语句用到的start
public DataTable GetInfoByNum(int start)
{
if (start > 1)
return SqlDbHelper.ExecuteDataTable(@"select top 5 stuID,stuName,stuSex,IdentificationNumber,className,stuYear from tb_Student s inner join tb_Class c
on s.classID = c.classID where stuID>all(select top " + (start - 1) + " stuID from tb_Student order by stuID asc) ");
else
{
return SqlDbHelper.ExecuteDataTable(@"select top 5 stuID,stuName,stuSex,IdentificationNumber,className,stuYear from tb_Student s inner join tb_Class c
on s.classID = c.classID ");
}
}
第一次加载数据没问题,关键是第二次翻页的时候,我是使用jq用ajax跳转到一般处理程序加载数据的
private void DoLoadData()
{
string strStartNum = context.Request.Params["startNum"];
if (!PageHelper.IsNum(strStartNum))
{
AjaxMsgHelper.AjaxMsg("error", "Ajax传值,传向StudentManager.ashx页面的参数异常.");
}
else
{
Web.Manager.View.StudentManager StudentManager = new View.StudentManager();
StudentManager.BindrepStudentList(int.Parse(strStartNum));
}
}
就这样又调用最上面的方法 ,然后就出错了
<html>
<head>
<title>未将对象引用设置到对象的实例。</title>
<meta name="viewport" content="width=device-width" />
<style>
body {font-family:"Verdana";font-weight:normal;font-size: .7em;color:black;}
p {font-family:"Verdana";font-weight:normal;color:black;margin-top: -5px}
b {font-family:"Verdana";font-weight:bold;color:black;margin-top: -5px}
H1 { font-family:"Verdana";font-weight:normal;font-size:18pt;color:red }
H2 { font-family:"Verdana";font-weight:normal;font-size:14pt;color:maroon }
pre {font-family:"Consolas","Lucida Console",Monospace;font-size:11pt;margin:0;padding:0.5em;line-height:14pt}
.marker {font-weight: bold; color: black;text-decoration: none;}
.version {color: gray;}
.error {margin-bottom: 10px;}
.expandable { text-decoration:underline; font-weight:bold; color:navy; cursor:hand; }
@media screen and (max-width: 639px) {
pre { width: 440px; overflow: auto; white-space: pre-wrap; word-wrap: break-word; }
}
@media screen and (max-width: 479px) {
pre { width: 280px; }
}
</style>
</head>

<body bgcolor="white">

<span><H1>“/”应用程序中的服务器错误。<hr width=100% size=1 color=silver></H1>

<h2> <i>未将对象引用设置到对象的实例。</i> </h2></span>

<font face="Arial, Helvetica, Geneva, SunSans-Regular, sans-serif ">

<b> 说明: </b>执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

<br><br>

<b> 异常详细信息: </b>System.NullReferenceException: 未将对象引用设置到对象的实例。<br><br>

<b>源错误:</b> <br><br>

<table width=100% bgcolor="#ffffcc">
<tr>
<td>
<code><pre>

行 21: {
行 22: DataTable dt = StudentBll.GetInfoByNum(num);
<font color=red>行 23: this.repStudentList.DataSource = dt;
</font>行 24: this.repStudentList.DataBind();
行 25: dt = null;</pre></code>

</td>
</tr>
</table>

<br>

<b> 源文件: </b> e:\论文项目\SkillExamination\SkillExamination.Web\Manager\View\StudentManager.aspx.cs<b>    行: </b> 23
<br><br>

<b>堆栈跟踪:</b> <br><br>

<table width=100% bgcolor="#ffffcc">
<tr>
<td>
<code><pre>

[NullReferenceException: 未将对象引用设置到对象的实例。]
SkillExamination.Web.Manager.View.StudentManager.BindrepStudentList(Int32 num) in e:\论文项目\SkillExamination\SkillExamination.Web\Manager\View\StudentManager.aspx.cs:23
SkillExamination.Web.Manager.Action.StudentManager.DoLoadData() in e:\论文项目\SkillExamination\SkillExamination.Web\Manager\Action\StudentManager.ashx.cs:67
SkillExamination.Web.Manager.Action.StudentManager.SonLoad() in e:\论文项目\SkillExamination\SkillExamination.Web\Manager\Action\StudentManager.ashx.cs:21
SkillExamination.Web.Manager.Action.AdminBaseHandler.ProcessRequest(HttpContext context) in e:\论文项目\SkillExamination\SkillExamination.Web\Manager\Action\AdminBaseHandler.ashx.cs:23
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +341
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +69
</pre></code>

</td>
</tr>
</table>

<br>

<hr width=100% size=1 color=silver>

<b>版本信息:</b> Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.0.30319.34212

</font>

</body>
</html>
...全文
271 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
u010393040 2014-10-16
  • 打赏
  • 举报
回复
加过 还是不对的。 可能是因为在一般处理程序里调用web窗体后台页面类的方法的错。
czfeixiang 2014-10-16
  • 打赏
  • 举报
回复
是不是刷新的时候清空了变量?你在页面加载里面加个ispostback试下!
u010393040 2014-10-16
  • 打赏
  • 举报
回复
引用 11 楼 luanjun123456 的回复:
[quote=引用 10 楼 u010393040 的回复:] [quote=引用 9 楼 luanjun123456 的回复:] [quote=引用 6 楼 u010393040 的回复:] [quote=引用 2 楼 luanjun123456 的回复:] 断点调试看看你的GetInfoByNum方法中的 if (start > 1)情况下的返回的DataTable是否为空,如果为空,那就是sql语句写的有问题。
DataTable有数据 在绑定repeater的DataSource的出现异常[/quote] 你是在一般处理程序中绑定的值,可能和这个有关系,因为服务器控件一般处理数据都要在if(!this.IsPostBack){}中才会正常[/quote] 我也想过这种可能,但是不知道怎么修改。[/quote] 实际上你就是想无刷新显示列表数据,那么你只能放弃使用GridView,因为这东西本身就是跑在服务器端的控件,最好的方式还是自己手写Table,在一般处理程序中返回Json,前台获取数据并拼接页面[/quote] 我是想写分页,结果没法加载数据,现在只能用table自己一点点写了。不过还是很谢谢你。
完美的神速 2014-10-16
  • 打赏
  • 举报
回复
引用 10 楼 u010393040 的回复:
[quote=引用 9 楼 luanjun123456 的回复:] [quote=引用 6 楼 u010393040 的回复:] [quote=引用 2 楼 luanjun123456 的回复:] 断点调试看看你的GetInfoByNum方法中的 if (start > 1)情况下的返回的DataTable是否为空,如果为空,那就是sql语句写的有问题。
DataTable有数据 在绑定repeater的DataSource的出现异常[/quote] 你是在一般处理程序中绑定的值,可能和这个有关系,因为服务器控件一般处理数据都要在if(!this.IsPostBack){}中才会正常[/quote] 我也想过这种可能,但是不知道怎么修改。[/quote] 实际上你就是想无刷新显示列表数据,那么你只能放弃使用GridView,因为这东西本身就是跑在服务器端的控件,最好的方式还是自己手写Table,在一般处理程序中返回Json,前台获取数据并拼接页面
u010393040 2014-10-16
  • 打赏
  • 举报
回复
引用 9 楼 luanjun123456 的回复:
[quote=引用 6 楼 u010393040 的回复:] [quote=引用 2 楼 luanjun123456 的回复:] 断点调试看看你的GetInfoByNum方法中的 if (start > 1)情况下的返回的DataTable是否为空,如果为空,那就是sql语句写的有问题。
DataTable有数据 在绑定repeater的DataSource的出现异常[/quote] 你是在一般处理程序中绑定的值,可能和这个有关系,因为服务器控件一般处理数据都要在if(!this.IsPostBack){}中才会正常[/quote] 我也想过这种可能,但是不知道怎么修改。
完美的神速 2014-10-16
  • 打赏
  • 举报
回复
引用 6 楼 u010393040 的回复:
[quote=引用 2 楼 luanjun123456 的回复:] 断点调试看看你的GetInfoByNum方法中的 if (start > 1)情况下的返回的DataTable是否为空,如果为空,那就是sql语句写的有问题。
DataTable有数据 在绑定repeater的DataSource的出现异常[/quote] 你是在一般处理程序中绑定的值,可能和这个有关系,因为服务器控件一般处理数据都要在if(!this.IsPostBack){}中才会正常
u010393040 2014-10-15
  • 打赏
  • 举报
回复
引用 4 楼 u012175253 的回复:
单独调试一步一步往下看吧。肯定有一个值为空了。
public void BindrepStudentList(int num) { DataTable dt = StudentBll.GetInfoByNum(num); this.repStudentList.DataSource = dt; this.repStudentList.DataBind(); dt = null; } 这里的dt是有数据的。
u010393040 2014-10-15
  • 打赏
  • 举报
回复
引用 5 楼 ayanamireizero 的回复:
public void BindrepStudentList(int num) { DataTable dt = StudentBll.GetInfoByNum(num); this.repStudentList.DataSource = dt; this.repStudentList.DataBind(); dt = null; } 这里的dt为null了, if(dt!=null) { this.repStudentList.DataSource = dt; this.repStudentList.DataBind(); } 这样不会报错,但是还是不能翻页.
会不会是因为repeater的DataSource没有清空,不能再次绑定?
u010393040 2014-10-15
  • 打赏
  • 举报
回复
引用 2 楼 luanjun123456 的回复:
断点调试看看你的GetInfoByNum方法中的 if (start > 1)情况下的返回的DataTable是否为空,如果为空,那就是sql语句写的有问题。
DataTable有数据 在绑定repeater的DataSource的出现异常
ayanamireizero 2014-10-15
  • 打赏
  • 举报
回复
public void BindrepStudentList(int num) { DataTable dt = StudentBll.GetInfoByNum(num); this.repStudentList.DataSource = dt; this.repStudentList.DataBind(); dt = null; } 这里的dt为null了, if(dt!=null) { this.repStudentList.DataSource = dt; this.repStudentList.DataBind(); } 这样不会报错,但是还是不能翻页.
情若能自控Q 2014-10-15
  • 打赏
  • 举报
回复
单独调试一步一步往下看吧。肯定有一个值为空了。
myhope88 2014-10-15
  • 打赏
  • 举报
回复
程序逻辑有问题
完美的神速 2014-10-15
  • 打赏
  • 举报
回复
断点调试看看你的GetInfoByNum方法中的 if (start > 1)情况下的返回的DataTable是否为空,如果为空,那就是sql语句写的有问题。
淡淡的活着 2014-10-15
  • 打赏
  • 举报
回复
调试看看第二次哪里为空呗·
ASP.NET 参考手册 在 W3School,我们提供完整的 ASP.NET 参考手册,其中包括内建对象和组件,以及它们的属性和方法。 ASP.NET 实例 ASP.NET 实例 一系列的 ASP.NET 实例。 内容目录 ASP.NET 简介 本章解释 ASP.NET 的概念。 ASP.NET vs ASP 本章阐述 ASP.NET 和 ASP 之间的差异。 ASP.NET 页面 本章介绍如何创建您的第一个简单的 ASP.NET 页面。 ASP.NET 服务器控件 本章介绍 ASP.NET 服务器控件。 ASP.NET 事件 本章介绍一些 ASP.NET 事件句柄。 ASP.NET Forms ASP.NET WEB 表单 本章介绍 ASP.NET 的 WEB 表单。 ASP.NET 维持 ViewState 本文讲解如何维持 ViewState。 ASP.NET 文本框控件 本章阐述 ASP 的基础:文本框控件。 ASP.NET 按钮控件 本章阐述 ASP 的基础:按钮控件。 ASP.NET Binding ASP.NET 数据绑定 本文介绍 ASP.NET 数据绑定ASP.NET ArrayList 对象 本文讲解 ASP.NET ArrayList 对象ASP.NET Hashtable 对象 本文讲解 ASP.NET Hashtable 对象 ASP.NET SortedList 对象 本文讲解 ASP.NET SortedList 对象 ASP.NET XML 文件 本章介绍如何将数据绑定到一个 XML 文件。 ASP.NET asp:Repeater 控件 本章介绍如何通过 Repeater 控件将数据绑定到一个 XML 文件。 ASP.NET asp:DataList 控件 本文讲解使用 DataList 控件把数据绑定到 XML 文件。 ASP.NET Database ASP.NET 数据库连接 本章介绍 ADO.NET 以及连接到数据库。 ASP.NET 2.0 ASP.NET 2.0 新特性 本节介绍 ASP.NET 2.0 中的新特性。 ASP.NET 2.0 母版页 本节解释母版页(Master Pages)的概念。 ASP.NET 2.0 导航 本节讲解 ASP.NET 2.0 的导航控件。 ASP.NET 参考手册 ASP.NET HTML Server 控件参考 完整的 HTML 服务器控件参考手册,包括其属性、方法以及事件。 ASP.NET Web Server 控件参考 完整的 Web 服务器控件参考手册,包括其属性、方法以及事件。 ASP.NET Validation Server 控件参考 完整的 Validation 服务器控件参考手册,包括其属性、方法以及事件。 ASP.NET 实例 ASP.NET 实例 一系列 ASP.NET 实例
上篇 ASP.NET应用与开发基础 第1章 ASP.NET概论 1.1 ASP.NET简介 1.1.1 从.NET谈起 1.1.2 动态网站设计技术 1.1.3 ASP.NET的介绍 1.1.4 ASP.NET和ASP的对比 1.2 运行环境配置 1.2.1 ASP.NET运行环境介绍 1.2.2 lis的安装和配置 1.2.3 安装Microsoft.NET Framework SDK 1.2.4 Visual Studio.NET的简介 1.3 从HelloWorld开始 1.3.1 用HTML编写的Hello World程序 1.3.2 用C#编写的Hello World程序 1.4 小结 1.5 习题 第2章 ASP.NET语言基础 2.1 C#言简介 2.2 一个简单的程序 .2.3 C#中的数据类型 2.3.1 整型 2.3.2 浮点型 2.3.3 布尔型 2.3.4 字符型 2.3.5 预定义引用类型 2.4 C#中的变量和常量 2.4.1 变量声明和赋值 2.4.2 定义常量 2.4.3 枚举类型 2.5 C#中的操作符与表达式 2.5.1 赋值运算符 2.5.2 算术运算符 2.5.3 比较运算符 2.5.4 布尔逻辑运算符 2.5.5 位运算符 2.6 C#中的控制语句 2.6.1 选择语句 2.6.2 循环语句 2.7 C#中的类机制简介 2.8 小结 2.9 习题 第3章 Web Form 3.1 Web Form概述 3.1.1 什么是Web Form 3.1.2 Web Form的组成 3.1.3 第一个Web Form程序 3.1.4 让Web Form支持中文 3.2 Web Form语法知识 3.2.1 aspx文件的构成 3.2.2 服务器控件(Server Controls) 3.2.3 Web Form的Code-Behind代码组织方式 3.3 Web Form页面处理 3.3.1 页面处理内部过程 3.3.2 页面的一次往返处理 3.3.3 页面重建 3.4 声明和使用服务器控件 3.4.1 声明服务器控件 3.4.2 响应服务器控件 3.5 小结 3.6 习题 第4章 服务器控件 4.1 常用的HTML控件 4.1.1 表单控件 4.1.2 表格控件 4.1.3 其他控件 4.2 Web控件 4.2.1 Label控件 4.2.2 Button控件 4.2.3 CheckBox和CheckBoxList控件 4.2.4 RadioButton和RadioButtonList控件 4.2.5 Image控件和ImageButton控件 4.2.6 HyperLink和LinkButton控件 4.2.7 DropDownList和ListBox控件 4.2.8 Panel控件 4.2.9 TextBox控件 4.2.10 Table控件、TableRow控件及TableCel!控件 4.2.11 高级控件 4.3 验证控件 4.3.1 验证控件概述 4.3.2 验证控件的类型 4.3.3 验证技术的综合应用 4.4 用户控件 4.4.1 用户控件概述 4.4.2 用户控件中定义属性 4.4.3 用户控件中的事件处理 4.4.4 从Web Form页面到用户控件 4.5 小结 4.6 习题 中篇 ASP.NET应用与开发的核心内容 第5章 AD0.NET数据库连接 5.1 ADO.NET基本概念 5.1.1 ADO.NET对象模型 5.1.2 ADO.NET对比ADO 5.2 ADO.NET数据库连接概述 5.3 使用Connection对象 5.4 使用Command和DataReader对象 5.4.1 Command对象 5.4.2 DataReader对象 5.4.3 使用Command对象实现存储过程访问 5.5 使用DataSet对象 5.5.1 DataTableCollection对象 5.5.2 DataRelationCollection对象 5.5.3 ExtendedProperties对象 5.5.4 使用DataSet对象获取数据 5.5.5 使用DataSet 5.5.6 使用DataTable 5.6 使用DataAdapter对象 5.7 小结 5.8 习题 第6章 ADO.NET数据管理与数据控件 6.1 SQL操作 6.1.1 数据查询 6.1.2 数据更新 6.2 数据绑定技术 6.3 DmaGdd控件 6.3.1 在DataGfid中显示数据 6.3.2 为DataGrid添加多功能列 6.4 Repeater控件 6.5 DataList控件 6.6 小结 6.7 习题 第7章 跟踪调试ASP,NET程序 7.1 错误的种类 7.2 跟踪ASP.NET程序 7.2.1 页面级的跟踪 7.2.2 应用程序级的跟踪 7.3 调试ASP.NET程序 7.3.1 调试ASP.NET程序 7.3.2 设置断点 7.4 小结 7.5 习题 第8章 ASP.NET应用程序 8.1 什么是应用程序 8.2 ASP.NET配置文件概述 8.2.1 什么是配置文件 8.2.2 ASP.NET程序配置文件格式 8.2.3 配置文件的内容格式 8.3 ASP.NET应用程序中的用户状态管理 8.3.1 Global.asax文件概述 8.3.2 Application对象事件 8.3.3 Session对象事件 8.3.4 其他几种客户端的用户状态管理方法 8.3.5 本小节提示 8.4 ASP.NETHTFP运行情况 8.4.1 HTFP运行情况介绍 8.4.2 HTFP处理程序 8.5 小结 8.6 习题 第9章 ASP.NET与XML 9.1 XML简介 9.1.1 什么是标记语言 9.1.2 HTML的弊病 9.1.3 什么是XML 9.2 XML基本语法 9.2.1 语法的基本要求和概念 9.2.2 文件 9.2.3 XML文件的逻辑结构 9.2.4 XML文件的物理结构 9.3 操作XML 9.3.1 XML控件 9.3.2 XmlTextReader 9.3.3 XmlTextWriter 9.3.4 XML DOM 9.3.5 XmlDataDOcument 9.3.6 DataSet 9.4 小结 9.5 习题 第10章 web service 10.1 Web Service简介 10.2 一个简单的Web Service程序 10.3 Web Service支持的数据类型 10.4 建立Web Service 10.5 使用Web Service 10.6 使用Session和Application对象 10.7 小结 10.8 习题 下篇 ASP.NET在实际中的应用与YF发 第11章 留言板的实现 11.1 系统功能及结构描述 11.2 数据库的实现 11.3 各功能模块的具体实现 11.4 小结 11.5 习题 第12章 网上书店开发实例 12.1 网上书店的系统设计 12.2 网上书店的数据库设计 12.3 网上书店的实现 12.3.1 实现用户登录 12.3.2 实现用户注册 12.3.3 实现分类浏览 12.3.4 实现按名搜索 12.3.5 查看图书介绍 12.3.6 购物车及购买 12.3.7 客户订单管理 12.3.8 新书入库 12.3.9 封面上载 12.3.10 库存管理 12.4 小结

62,050

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧