会话变量自动更新

时间:2012-12-03 11:00:47

标签: c# asp.net

protected void btningAccept_Click(object sender, EventArgs e)
        {

if(!(txtLOVCode.Text==" "||txtLOVvalue.Text==" "))
           {

            rowid++;
           // DFDLOVlst.Visible=true;
            DataTable dt = createTemptable();
            dt = (DataTable)Session["dfdtemptable"];
           DataRow dr = dt.NewRow();
          dr["prociLOV_Id"] = rowid;
          dr["prociLOV_Value"] = txtLOVvalue.Text;
          dr["prociLOV_Code"] = txtLOVCode.Text;
          Boolean isalreadyinLOVlst = false;

          foreach (DataRow chkrow in dt.Rows)
          {
              if (String.Equals(dr["prociLOV_Value"].ToString().Trim(), chkrow["prociLOV_Value"].ToString().Trim(),StringComparison.CurrentCultureIgnoreCase)
                  && String.Equals(dr["prociLOV_Code"].ToString().Trim(), chkrow["prociLOV_Code"].ToString().Trim(), StringComparison.CurrentCultureIgnoreCase))
              {
                  isalreadyinLOVlst = true;
                  break;
              }

           }

          if (isalreadyinLOVlst)
          {
              this.lblMessage.Text = "LOV value: " + dr["prociLOV_Value"].ToString() + ": " + dr["prociLOV_Code"].ToString() + " already exits";

          }
          else
          {
              this.lblMessage.Text = " ";
              dt.Rows.Add(dr);
              DataTable addedLOV = createTemptable();
            addedLOV = (DataTable)Session["addedLOV"];
            addedLOV.ImportRow(dr); ;
            Session["addedLOV"] = addedLOV;

          }


            DFDLOVlst.DataSource = dt;
            DFDLOVlst.DataBind();
         //   dt.AcceptChanges();

            Session["dfdtemptable"] = dt;

            txtLOVCode.Text = "";
            txtLOVvalue.Text = "";
            MDIngrdientsCode.Hide();
            this.txtLOVvalue.ReadOnly = false;
            this.txtLOVCode.ReadOnly = false;

           }
           else

            this.lblMessage.Text="NO LOV VALUES ENTERED";

        }

此处会话变量Session["dfdtemptable"]Session["addedLOV"]都会更新两次,每个会话变量的行数变为2。但每个会话变量的行计数应为1。但是,当另一个Session变量更新时,Session变量会更新。 分配或更新Session["dfdtemptable"]时,Session["addedLOV"]会更新。我无法弄清楚问题。

1 个答案:

答案 0 :(得分:0)

我认为createTempTable方法存在问题,但此处未显示。似乎你的dt(aka dfdTempTable)和addedLov(又名addedLOV)都引用了相同的DataTable。 我建议你从Debug模式开始,在执行期间检查dt和addedLOV表中的行,或者在Debug.Watch窗口中使用Make Object Id比较这两个对象。