日期:2014-05-18  浏览次数:20747 次

未将对象引用设置到对象的实例 求解
“/ShopWeb”应用程序中的服务器错误。
--------------------------------------------

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

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

源错误: 


行 41: pd = BLLFactory.CreateProductBLL().GetProdByID(Request.QueryString["pid"].Trim());
行 42: txtID.Enabled = false;
行 43: txtID.Text = pd.ProdId;
行 44: txtName.Text = pd.ProdName;
行 45: ddlCategory.SelectedValue = pd.CategoryId;
 

源文件: h:\web课上练习\下学期\案例\FlowerShop\ShopWeb\Admin\AddProduct.aspx.cs 行: 43 

堆栈跟踪: 


[NullReferenceException: 未将对象引用设置到对象的实例。]
  Admin_AddProduct.Page_Load(Object sender, EventArgs e) in h:\web课上练习\下学期\案例\FlowerShop\ShopWeb\Admin\AddProduct.aspx.cs:43
  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

 


------解决方案--------------------
pd = BLLFactory.CreateProductBLL().GetProdByID(Request.QueryString["pid"].Trim());

查这句,返回结果为 null 了!
------解决方案--------------------
pd = BLLFactory.CreateProductBLL().GetProdByID(Request.QueryString["pid"].Trim());这句获取的数据是空的,先把红色的部分去掉看下
------解决方案--------------------
pd = BLLFactory.CreateProductBLL().GetProdByID(Request.QueryString["pid"].Trim());
这句有误,你应该先判断Request.QueryString["pid"]的值是否为NULL


Request.QueryString["pid"] 看看这个有值没?
------解决方案--------------------
pd = BLLFactory.CreateProductBLL().GetProdByID(Request.QueryString["pid"].Trim());

首先肯定是Pd这个实例化的对象是null的问题了。
再看如果你封装的方法没问题的话,只能认为Request.QueryString["pid"].Trim() 这个值是null或者在数据库里对应的没有这个ID 的product。请确认下这3中情况就行 了