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

未将对象引用设置到对象的实例

程序运行到58行代码时总会抛出异常,不知道该怎么解决这个问题,我是新手,刚学不久,哪位朋友能帮忙看一下吗?谢谢!

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

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

源错误: 


行 58:        string[] strLst = myFile.PostedFile.FileName.Split('\\');
行 59:         string filename = strLst[strLst.Length - 1];
行60               myFile.PostedFile.SaveAs("G:\\ASP.NET编程\\The company's Web site\\images2\\Buddhism Paintings\\" + filename);
  


源文件: g:\ASP.NET编程\The company's Web site\aspx\pictures.aspx.cs    行: 58 

堆栈跟踪: 


[NullReferenceException: 未将对象引用设置到对象的实例。]
   _Default.Submit1_ServerClick(Object sender, EventArgs e) in g:\ASP.NET编程\The company's Web site\aspx\pictures.aspx.cs:58
   System.Web.UI.HtmlControls.HtmlInputButton.OnServerClick(EventArgs e) +96
   System.Web.UI.HtmlControls.HtmlInputButton.RaisePostBackEvent(String eventArgument) +110
   System.Web.UI.HtmlControls.HtmlInputButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +31
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +32
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +72
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3838

 
           --------------------编程问答-------------------- 显然你的myFile.PostedFile.FileName为null了!!
也就是说myFile.PostedFile.FileName没取到值! --------------------编程问答-------------------- myFile或者myFile.PostedFile或者myFile.PostedFile.FileName为null,调试一下。 --------------------编程问答-------------------- 楼上2位说的很对 --------------------编程问答--------------------  System.NullReferenceException: 未将对象引用设置到对象的实例。
对象为空,没有取到值,楼上的说得很对,你可以单步调试一下!! --------------------编程问答-------------------- myFile.PostedFile.FileName 这个没有获取到值~ --------------------编程问答-------------------- 大家都分析得挺对的,不用说了,路过留名下 --------------------编程问答--------------------
引用楼主 hsl88 的回复:
异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。


值为NULL,检查58行的赋值问题~ --------------------编程问答-------------------- myFile.PostedFile.FileName.Split('\\');


myFile.PostedFile.FileName 为NULL --------------------编程问答-------------------- myFile没有取到值 --------------------编程问答-------------------- --------------------编程问答-------------------- myFile是一个上传图片FileUpload的ID,要怎样给它赋值啊,我是想用它来上传图片到一个文件夹的,试了很久都不行,各位大哥能举一个例子来看看吗?谢谢啦! --------------------编程问答-------------------- 检查赋值 --------------------编程问答-------------------- myFile为null

myFile.PostedFile 为 null

myFile.PostedFile.FileName  为null  --------------------编程问答-------------------- myFile.PostedFile.FileName.Split('\\');
myFile.PostedFile.FileName 可能为NULL

注意是可能为null,就算你这次不为NULL,下次呢?这个程序是不健壮滴,所以编译器不给你通过。
这样写就行了

if(!String.IsNullOrEmpty(myFile.PostedFile.FileName))
{
   myFile.PostedFile.FileName.Split('\\');
} --------------------编程问答-------------------- 如何赋值,举个例子来看看 --------------------编程问答-------------------- 嗯,我试试
--------------------编程问答-------------------- 断点,调试一下 --------------------编程问答--------------------
引用 14 楼 qq865435515 的回复:
myFile.PostedFile.FileName.Split('\\');
myFile.PostedFile.FileName 可能为NULL

注意是可能为null,就算你这次不为NULL,下次呢?这个程序是不健壮滴,所以编译器不给你通过。
这样写就行了

if(!String.IsNullOrEmpty(myFile.PostedFile.FileName))
{
  m……


if(!String.IsNullOrEmpty(myFile.PostedFile.FileName))
{
  string[] strLst = myFile.PostedFile.FileName.Split('\\');
}
这样就不会出现将空值赋给字符串的情况,未将对象引用设置到对象的实例,这个错误,正常不是说你当前的值为空,是指你可能出现空值。

--------------------编程问答-------------------- 改了之后还是出现这个问题,程序运行到代码if(!String.IsNullOrEmpty(myFile.PostedFile.FileName))的时候又出现了跟之前一模一样的问题
--------------------编程问答-------------------- 搞定了,谢谢各位帮忙啊!
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,