首页 新闻 搜索 专区 学院

hash表和往datatable里面添加多个临时字段不成功

0
悬赏园豆:15 [已关闭问题] 关闭于 2017-01-16 11:33

应用场景:添加商品参数时往hash里面添加,在读取购物车时往datatable里面增加临时字段的问题。

问题:新添加的两个字段不成功,出现“未将对象引用设置到对象的事例”

 

添加到hash代码片段

  Hashtable hash;
                    string pid = Request.Params["ID"];
                    string cz= Request.Params["cz"];
                    string zq=Request.Params["zq"];
                    if (Session["Car"] == null)
                    {
                        //如果用户没有分配购物车
                        hash = new Hashtable();         //新生成一个
                        //  hash.Add(e.CommandArgument, 1); //添加一个商品
                        // Session["Cart"] = hash;     //分配给用户
                    }
                    else
                    {
                        //用户已经有购物车
                        hash = (Hashtable)Session["Car"];//得到购物车的hash表
                    }
                    if (!hash.Contains(pid))//购物车中已有此商品,商品数量加1
                    {
                        hash.Add(pid, 1);//如果没有此商品,则新添加一个项
                        //hash.Add(cz,1);
                        //hash.Add(zq, 1);


                    }
                    else
                    {
                        int count = Convert.ToInt32(hash[pid].ToString());//得到该商品的数量
                        hash[pid] = (count + 1);//商品数量加1
                    }

                    Session["Car"] = hash;

                    Response.Write("10");

购物车dt代码片段

            DataSet ds = bFullPros.GetList(" f_prosid in" + Products); //通过商品ID查到datatbale表

            DataTable Table1 = new DataTable();
            Table1 = ds.Tables[0];
            // Table1 = ds.Tables["product"];
            Table1.Columns.Add(new DataColumn("C_count", System.Type.GetType("System.Int32")));//添加临时字段(此处添加成功了)
            //Table1.Columns.Add(new DataColumn("cz", System.Type.GetType("System.Int32")));
            //Table1.Columns.Add(new DataColumn("zq", System.Type.GetType("System.Int32")));
            
            //以上两个注释的添加不成功
            DataColumn[] Keys = { Table1.Columns["f_prosid"] };
            Table1.PrimaryKey = Keys;
            foreach (string X in Hash.Keys)
            {                
                Table1.Rows.Find(X)["C_count"] = Hash[X];
                //Table1.Rows.Find(X)["cz"] = Hash[X];
                //Table1.Rows.Find(X)["zq"] = Hash[X];

            }
            Table1.Columns.Add(new DataColumn("C_totalprice", System.Type.GetType("System.Double"), "f_Pros_39*C_count"));
WikiZhao的主页 WikiZhao | 初学一级 | 园豆:200
提问于:2014-11-28 15:57
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册