0
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 回更新され、セッション変数ごとに行数が 2 になります。ただし、各セッション変数の行数は 1 である必要があります。ただし、セッション変数は、他のセッション変数が更新されると更新されます。が割り当てられるか更新Session["dfdtemptable"]されると、が更新されます。Session["addedLOV"]問題がわかりません。

4

1 に答える 1

0

createTempTableここには示していませんが、方法に問題があると思います。dt (別名 dfdTempTable) と addedLov (別名 addedLOV) の両方が同じ DataTable を参照しているようです。デバッグ モードで開始し、実行中に dt テーブルと addedLOV テーブルの両方の行をチェックするか、Debug.Watch ウィンドウで Make Object Id を使用してこれら 2 つのオブジェクトを比較することをお勧めします。

于 2012-12-03T11:29:29.373 に答える