用户代码未处理NullReferenceException: 未将对象引用设置到对象的实例

linjie3411 2012-06-22 02:31:15
代码如下:
DateTime selDate = (DateTime)DatePicker1.SelectedDate;
DataSet ds = new DataSet();
//ds = bllcount.GetList(" CT_ISOK=1 and CT_ISMS=0");
ds = bllcount.GetList(" CT_ISOK=1 and CT_ISMS=0", selDate);

if (ds.Tables.Count > 0)
{
Grid1.DataSource = ds.Tables[0];
Grid1.DataBind();
}
每次把数据集绑定到grid的时候就会出错。

堆栈跟踪:


[NullReferenceException: 未将对象引用设置到对象的实例。]
ExtAspNet.WindowField.GetColumnValue(GridRow row) +1021
ExtAspNet.GridRow.DataBindRow() +275
ExtAspNet.Grid.DataBindRow(Int32 rowIndex, Object rowObj) +172
ExtAspNet.Grid.DataBindToDataTable(DataTable dataTable) +131
ExtAspNet.Grid.DataBind() +403
WebFrameWork.webPage.TJpage.SSFY.BindGridData() in G:\供热收费\20120618\HRSF\WebFrameWork\webPage\TJpage\SSFY.aspx.cs:43
WebFrameWork.webPage.TJpage.SSFY.Page_Load(Object sender, EventArgs e) in G:\供热收费\20120618\HRSF\WebFrameWork\webPage\TJpage\SSFY.aspx.cs:29
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
System.Web.UI.Control.OnLoad(EventArgs e) +99
System.Web.UI.Control.LoadRecursive() +50
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627


网上看到很多类似的情况,可是都不太一样,请高手指教~~~~(>_<)~~~~

...全文
199 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenai3411 2012-06-22
  • 打赏
  • 举报
回复
遇到这种问题基本上可以归结为:
1:本质上的错误:
object a;//a是Null对象
protected void Page_Load(object sender, EventArgs e)
{
a.ToString();//调用一个Null对象的方法
}
2:通常性的错误:
示例1:一个过滤某些字符的函数:
public static string FilterValue(string value)
{
string[] filterChar = new string[] { "\'", ",", ">", "<", "=", ";", "\"", "--" };
for (int i = 0; i < filterChar.Length; i++)
{
value = value.Replace(filterChar[i], "");
}
return value.Trim(' ');
}

这个函数比如容易看的出:如果value传进来为Null的时候,就等于Null.Replace被调用,就出现了上面的错误。

因此,通常的,在函数的首行,都会对value进行:if(!string.IsNullOrEmpty(value)) 一下。
linjie3411 2012-06-22
  • 打赏
  • 举报
回复
呃。。搞定了,前台调用数据时有点问题,结贴。
资源下载链接为: https://pan.quark.cn/s/1bfadf00ae14 在.NET开发过程中,【对象引用设置对象实例(System.NullReferenceException)】是一种频繁出现的运行时错误。该异常意味着开发者试图去访问或者操作一个被初始化的对象,换言之,就是这个对象引用处于null状态。无论是初出茅庐的开发者,还是经验丰富的资深开发者,都需要对这种错误保持警惕。出现这个错误的根本原因在于,开发者尝试去调用一个null引用对象的方法、属性或者其他成员。 例如,有如下代码: 在这个例子中,a对象没有被赋予任何值,所以它的值是null,当尝试调用a.ToString()时,就会引发System.NullReferenceException异常。 再看另一种常见的情况: 如果value参数传入的是null,那么在调用value.Replace时就会抛出异常。为了避免这种情况,通常会在函数的开头对value进行是否为空的检查: 类似的问题也可能出现在ASP.NET的数据绑定表达式中,比如Eval("字段").ToString()=="1"?"Yes":"No"。如果Eval("字段")返回的是null,就会导致NullReferenceException。正确的做法是先将Eval的结果转换为字符串,像这样Convert.ToString(Eval("字段"))=="1"?"Yes":"No"。 针对不同程度的开发者,处理NullReferenceException的方式也各有不同: 新手开发者可能由于经验不足,对这种错误了解有限,或者在编写代码时没有做好充分的异常处理工作,从而导致代码中存在很多可能触发NullReferenceException的隐患点。 有一定经验的开发者虽然知道这个错误,但在实际编写代码的过程中,可能会因为面临时间

62,248

社区成员

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

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

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

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