C# 更新的值未存储在文本框中
//按钮点击功能C# 更新的值未存储在文本框中,c#,asp.net,C#,Asp.net,//按钮点击功能 protected void Page_Load(object sender, EventArgs e) { cnst = "Data Source=IBM369-R9WAKY5;Initial Catalog=anudatabase;Integrated Security=True"; cn = new SqlConnection(cnst); cn.Open(); st = "select *
protected void Page_Load(object sender, EventArgs e)
{
cnst = "Data Source=IBM369-R9WAKY5;Initial Catalog=anudatabase;Integrated Security=True";
cn = new SqlConnection(cnst);
cn.Open();
st = "select * from patient_db where unique_id = 123";
cmd = new SqlCommand(st, cn);
dr = cmd.ExecuteReader();
if (dr.Read())
{
Label9.Text = dr.GetString(1);
Label10.Text = dr.GetInt16(2).ToString();
Label11.Text = dr.GetString(6);
Label12.Text = dr.GetString(7);
TextBox1.Text = dr.GetString(3);
TextBox2.Text = dr.GetDecimal(4).ToString();
}
cn.Close();
}
从数据库将值分配给textbox后,如果我在文本框中键入其他新值,它不会接受新值,它仍然保留旧值。我可以知道原因和解决方案吗?提前感谢添加
IsPostBack
控件在页面加载
方法。因为在按钮\u单击
事件页面\u加载
事件触发之前
protected void Button1_Click(object sender, EventArgs e)
{
cn.Open();
st = "update patient_db set address ='" + TextBox1.Text + "' ,phone=" + TextBox2.Text+"where unique_id=123";
cmd = new SqlCommand(st, cn);
int result2 = cmd.ExecuteNonQuery();
if (Convert.ToBoolean(result2))
{
result1.Text = "details updated successfully";
}
cn.Close();
}
在加载方法中添加
IsPostBack
控件。因为在按钮\u单击
事件页面\u加载
事件触发之前
protected void Button1_Click(object sender, EventArgs e)
{
cn.Open();
st = "update patient_db set address ='" + TextBox1.Text + "' ,phone=" + TextBox2.Text+"where unique_id=123";
cmd = new SqlCommand(st, cn);
int result2 = cmd.ExecuteNonQuery();
if (Convert.ToBoolean(result2))
{
result1.Text = "details updated successfully";
}
cn.Close();
}
您需要检查页面加载中的page.Ispostback属性。 这是你的密码
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
cnst = "Data Source=IBM369-R9WAKY5;Initial Catalog=anudatabase;Integrated Security=True";
cn = new SqlConnection(cnst);
cn.Open();
st = "select * from patient_db where unique_id = 123";
cmd = new SqlCommand(st, cn);
dr = cmd.ExecuteReader();
if (dr.Read())
{
Label9.Text = dr.GetString(1);
Label10.Text = dr.GetInt16(2).ToString();
Label11.Text = dr.GetString(6);
Label12.Text = dr.GetString(7);
TextBox1.Text = dr.GetString(3);
TextBox2.Text = dr.GetDecimal(4).ToString();
}
cn.Close();
}
}
当你们点击按钮时,它将首先调用PageLoad事件。所以它会再次将您的旧值设置为textbox,然后调用update方法。所以Update方法会将旧值更新到数据库。您需要在页面加载中检查page.Ispostback属性。 这是你的密码
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
cnst = "Data Source=IBM369-R9WAKY5;Initial Catalog=anudatabase;Integrated Security=True";
cn = new SqlConnection(cnst);
cn.Open();
st = "select * from patient_db where unique_id = 123";
cmd = new SqlCommand(st, cn);
dr = cmd.ExecuteReader();
if (dr.Read())
{
Label9.Text = dr.GetString(1);
Label10.Text = dr.GetInt16(2).ToString();
Label11.Text = dr.GetString(6);
Label12.Text = dr.GetString(7);
TextBox1.Text = dr.GetString(3);
TextBox2.Text = dr.GetDecimal(4).ToString();
}
cn.Close();
}
}
当你们点击按钮时,它将首先调用PageLoad事件。所以它会再次将您的旧值设置为textbox,然后调用update方法。所以Update方法会将旧值更新到数据库中。写一个方法
LoadData
,将代码从page\u load移到这个方法中。然后,如果(!IsPostBack)-检查,则从包装在中的页面调用此方法。更新值后,也可以从按钮单击事件处理程序调用此方法
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
cnst = "Data Source=IBM369-R9WAKY5;Initial Catalog=anudatabase;Integrated Security=True";
cn = new SqlConnection(cnst);
cn.Open();
st = "select * from patient_db where unique_id = 123";
cmd = new SqlCommand(st, cn);
dr = cmd.ExecuteReader();
if (dr.Read())
{
Label9.Text = dr.GetString(1);
Label10.Text = dr.GetInt16(2).ToString();
Label11.Text = dr.GetString(6);
Label12.Text = dr.GetString(7);
TextBox1.Text = dr.GetString(3);
TextBox2.Text = dr.GetDecimal(4).ToString();
}
cn.Close();
}
}
重要提示:
- 对于实现
IDisposable
的每个对象,也要使用using
-语句,如连接
或数据读取器。这样,所有非托管资源都会得到正确的处置。即使发生错误
- If
123
只是一个示例,实际上是用户提供的值,请使用sql参数来防止sql注入。不,总是用它们
编写一个方法加载数据
,将代码从加载页面移动到此方法中。然后,如果(!IsPostBack)
-检查,则从包装在中的页面调用此方法。更新值后,也可以从按钮单击事件处理程序调用此方法
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
cnst = "Data Source=IBM369-R9WAKY5;Initial Catalog=anudatabase;Integrated Security=True";
cn = new SqlConnection(cnst);
cn.Open();
st = "select * from patient_db where unique_id = 123";
cmd = new SqlCommand(st, cn);
dr = cmd.ExecuteReader();
if (dr.Read())
{
Label9.Text = dr.GetString(1);
Label10.Text = dr.GetInt16(2).ToString();
Label11.Text = dr.GetString(6);
Label12.Text = dr.GetString(7);
TextBox1.Text = dr.GetString(3);
TextBox2.Text = dr.GetDecimal(4).ToString();
}
cn.Close();
}
}
重要提示:
- 对于实现
IDisposable
的每个对象,也要使用using
-语句,如连接
或数据读取器。这样,所有非托管资源都会得到正确的处置。即使发生错误
- If
123
只是一个示例,实际上是用户提供的值,请使用sql参数来防止sql注入。不,总是用它们
在页面加载方法中添加IsPostBack控件。因为在按钮点击事件页面加载事件触发之前。好的,我知道了。谢谢你,你有什么异常吗?请重新检查查询。我想你应该在where“in”之前留一个空格,where unique\u id=123“我没有在页面加载方法上获得异常。因为在按钮单击事件页面加载事件触发之前。好的,我知道了。谢谢你,你有什么异常吗?请重新检查查询。我想你应该在where“in”之前留一个空格“where unique_id=123”我在那里没有遇到异常