日期:2014-05-17  浏览次数:20406 次

传递出去的值是数据库读出来得值,不是用户输入修改的值。
问题:在WEB页面上,修改数据信息,用户输入自己需要的信息,点击修改按钮,传递过去的值是原来的值,而不是用户输入的值。(如:面积原来是60, 修改成80 ,传递出去的值仍然是60)请教高手指导。
-------
修改按钮 代码 
protected void Update_Click(object sender, EventArgs e)
  {
  model.Cid= Convert.ToInt16(Request.QueryString["Cid"].ToString());
  model.Contract = this.TextBox2.Text;
  model.Contractor = this.TextBox3.Text;
  model.Begindate = Convert.ToDateTime(this.TextBox4.Text);
  model.Enddate = Convert.ToDateTime(this.TextBox5.Text);
  model.Area = Convert.ToInt16(this.TextBox6.Text);
  model.Rent = Convert.ToInt16(this.TextBox7.Text);
  model.Month_Rent = Convert.ToInt16(this.TextBox8.Text);
  model.Year_Rent = Convert.ToInt32(this.TextBox9.Text);
  model.Property = Convert.ToInt16(this.TextBox10.Text);
  model.Deposit = Convert.ToInt16(this.TextBox11.Text);
  model.Memo = this.TextBox12.Text;
  bll.Updateshopinfo(model);  
  }
------
执行sql语句代码:
  public int Updateshopinfo(M_ShopRent model)
  {
  string sqlString = "Update Shoprent Set Contract=@Contract,Contractor=@Contractor,Area=@Area,Rent=@Rent,Deposit=@Deposit,Memo=@Memo where Cid=@Cid";

  SqlParameter[] paremeters ={
  new SqlParameter("@Cid",SqlDbType.NVarChar,30),
  new SqlParameter("@Contract",SqlDbType.NVarChar,30),
  new SqlParameter("@Contractor",SqlDbType.NVarChar,30),
  new SqlParameter("@Area",SqlDbType.Int),
  new SqlParameter("@Rent",SqlDbType.Int),
  new SqlParameter("@Deposit",SqlDbType.Int),
  new SqlParameter("@Memo",SqlDbType.NVarChar,30),
  };
  paremeters[0].Value = model.Cid;
  paremeters[1].Value = model.Contract;
  paremeters[2].Value = model.Contractor;
  paremeters[3].Value = model.Area;
  paremeters[4].Value = model.Rent;
  paremeters[5].Value = model.Deposit;
  paremeters[6].Value = model.Memo;
  return SqlHelp.ExecuteSQL(sqlString, paremeters);
}
说明:我是通过该语句检验 System.Web.HttpContext.Current.Response.Write(model.Area);验证其他值也是老数据,不是输入修改值。
备注:若面积原本就是空的,没有值在里面。那么输入面积数据就可以正常传递过来,显示出来就是输入数据值。


------解决方案--------------------
ExecuteSQL处加断点调试看看paremeters的值
------解决方案--------------------
同上,加断点看一下,SQL 是否接收到你修改的值
------解决方案--------------------
Page_Load是不是有绑定 有没有if (!IsPostBack)
------解决方案--------------------
if (!IsPostBack)
------解决方案--------------------
在你的Page_Load中肯定有段代码执行的是:
this.TextBox6.Text=model.Area.ToString();
这段代码要放到
if (!IsPostBack){
//here
}