请问在asp.netcsharp中将所购物信息放到购物车中(存在Hashtable)报未将对象引用设置到对象的实例。 ?报错在bs.Add(b1);//未将对象引用设置到对象的实例。 private void DataList1_ItemCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e) 

if(e.CommandName=="AddCart") 

//用户选中一本书后,默认订一本书 
string pid=this.DataList1.DataKeys[e.Item.ItemIndex].ToString(); 
Book b1=new Book(); 
//首先获得自己的购物车 
Books bs=(Books)Session["MyCart"]; 
b1.BookID=pid; 
b1.Num=1; 
//根据ITEM的类型取值 
if(e.Item.ItemType==ListItemType.Item) 

b1.Price=Convert.ToDecimal(((Label)e.Item.FindControl("Label3")).Text.Substring(1)); 
b1.Title=((Label)e.Item.FindControl("Label1")).Text; 

else if(e.Item.ItemType==ListItemType.AlternatingItem) 

b1.Price=Convert.ToDecimal(((Label)e.Item.FindControl("Label8")).Text.Substring(1)); 
b1.Title=((Label)e.Item.FindControl("Label6")).Text; 
} // Response.Write(b.BookID+"<br>"+b.Num+"<br>"+b.Price+"<br>"+b.Title); 
// Response.End(); //将书加入到购物车 
bs.Add(b1); 
Session["MyCart"]=bs; 
//打开购物车页面。 
Response.Write("<script>window.open('ShowBus.aspx')</script>"); 

} 有热心者请帮忙,告诉邮箱,完全发给 帮我真正解决问题给分!
问题补充:回复邮箱地址或QQ,帮解决啊,谢谢! 我已经在Global.asax的session_onstart(){}里加了 
Session["MyCart"]=null初始化的语句啊!

解决方案 »

  1.   

    //首先获得自己的购物车    
    Books   bs=(Books)Session[ "MyCart "];   
    if(bs == null)bs = new Hashtable();b1.BookID=pid;   
    b1.Num=1;   
      

  2.   

    你初始化为null了,跟没初始化一样啊
    初始化为:
    Session["MyCart"] = new Hashtable();
      

  3.   

    Books   bs=(Books)Session[ "MyCart "];   Session[ "MyCart "]是在哪里初始化的?应该是没初始化
      

  4.   

    不要这句:  
    Books   bs=(Books)Session[ "MyCart "];   将这句改造一下:
    //将书加入到购物车   
    bs.Add(b1);   
    Session[ "MyCart "]=bs;   直接为:
    Session.Add("MyCart",b1);
      

  5.   

    我的也是提示错误:未将对象引用实例啊~~怎么解决的老兄:看看我的:http://topic.csdn.net/u/20091103/08/71c57693-28ca-48db-8b61-efd376dd6671.html?74862