我正在尝试创建一个编辑个人资料页面,所以当页面首先加载时,我将所有文本框值填充为特定用户的数据库中的值。我正在使用代码执行此操作:
DBconn obj1 = new DBconn();
String sql1 = "select* from users where user_id='" + Session["user_id"].ToString() + "'";
DataTable dt = new DataTable();
dt = obj1.getdatatable(sql1);
if (dt.Rows.Count > 0)
{
referal_id.Text = dt.Rows[0]["referal_id"].ToString();
name.Text = dt.Rows[0]["name"].ToString();
password.Text = dt.Rows[0]["password"].ToString();
email.Text = dt.Rows[0]["email"].ToString();
mobile.Text = dt.Rows[0]["mobile"].ToString();
city.Text = dt.Rows[0]["city"].ToString();
state.Text = dt.Rows[0]["state"].ToString();
pincode.Text = dt.Rows[0]["pincode"].ToString();
sec_ques.Text = dt.Rows[0]["securityq"].ToString();
answer.Text = dt.Rows[0]["answer"].ToString();
age.Text = dt.Rows[0]["age"].ToString();
gender.Text = dt.Rows[0]["gender"].ToString();
user_id.Text = dt.Rows[0]["user_id"].ToString();
address.Text = dt.Rows[0]["address"].ToString();
date_of_joining.Text = dt.Rows[0]["date_of_joining"].ToString();
user_type.Text = dt.Rows[0]["user_type"].ToString();
}
现在这将填充所有带有值的文本框。 当用户在某个文本框中编辑某些值并重新提交表单时,数据库将更新并实现代码:
protected void LinkButton1_Click(object sender, EventArgs e)
{
int i;
DBconn obj2 = new DBconn();
String sql2 = "update users set name='"+name.Text+"',address='"+address.Text+"',age='"+age.Text+"',gender='"+gender.Text+"',email='"+email.Text+"',mobile='"+mobile.Text+"',securityq='"+sec_ques.Text+"',answer='"+answer.Text+"',city='"+city.Text+"',state='"+state.Text+"',pincode='"+pincode.Text+"' where user_id='"+Session["user_id"].ToString()+"'";
i = obj2.executeDML(sql2);
if (i > 0)
{
Label1.Visible = true;
Image2.Visible = true;
Label1.Text = "Updated successfully!";
}
else
{
Label1.Visible = true;
Label1.Text = "Oops Update was unsuccessfull!";
}
}
问题是数据库是否已经使用以前存在于数据库中的值进行更新。当我使用观察点时,我发现sql语句被加载了文本框值,我使用上面的数据库代码绑定但是没有获取用户编辑的值。
帮助。
答案 0 :(得分:4)
!IsPostback
条件下。
请绑定此if循环下的值。
if(!IsPostback)
{
// Bind values
}
在页面加载时执行此操作。
答案 1 :(得分:2)
值必须仅在第一次加载页面时绑定。
在你的情况下,似乎文本框的值在每次加载时都被绑定(即使在回发中也加载了值。)
因此,在页面加载中,您必须检查页面是否回发的条件。
因此在绑定页面加载中的值时添加此条件。
if(!IsPostback)
答案 2 :(得分:2)
首先检查调用mathod绑定值的位置......
把它放在
上Page.isPostback
所以它不会在发布时更改值,那么当你保存它时,值会改变
当您点击按钮并再次加载页面时,该值必须更改。