传递出去的值是数据库读出来得值,不是用户输入修改的值。
问题:在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
}