Проблема в том, что я пытаюсь обновить запись базы данных через ввод пользователя в текстовое поле.Текстовое поле сохраняет старое значение непосредственно перед процессом обновления asp.net
Приведенный ниже код показывает, как я вытягиваю данные, которые будут отображаться, и позволяет пользователю вносить изменения, а затем обновить его на кнопку мыши
protected void Page_Load(object sender, EventArgs e)
{
List<SqlParameter> parameters = new List<SqlParameter>();
parameters.Add(new SqlParameter("@pid", Request.QueryString["perid"]));
SqlDataReader reader = SqlHelper.ExecuteReader(connection, "get_person_to_update", parameters.ToArray());
while (reader.Read())
{
fname.Text = reader["fname"].ToString();
mname.Text = reader["mname"].ToString();
lname.Text = reader["lname"].ToString();
qualifier.Text = reader["qualifier"].ToString();
alias_.Text = reader["alias"].ToString();
address.Text = reader["address"].ToString();
statussuspect.SelectedIndex = -1;
statussuspect.SelectedValue = reader["status_of_suspect"].ToString();
}
}
и вот код обновления
protected void SAVEEDIT_Click(object sender, EventArgs e)
{
List<SqlParameter> parameters = new List<SqlParameter>();
parameters.Add(new SqlParameter("@pid", Request.QueryString["perid"]));
parameters.Add(new SqlParameter("@fname", fname.Text.Trim().ToUpper()));
parameters.Add(new SqlParameter("@mname", mname.Text.Trim().ToUpper()));
parameters.Add(new SqlParameter("@lname", lname.Text.Trim().ToUpper()));
parameters.Add(new SqlParameter("@qualifier", qualifier.Text.Trim().ToUpper()));
parameters.Add(new SqlParameter("@alias_", alias_.Text.Trim().ToUpper()));
parameters.Add(new SqlParameter("@address", address.Text.Trim().ToUpper()));
parameters.Add(new SqlParameter("@status", statussuspect.SelectedValue));
int affecterows = SqlHelper.ExecuteNonQuery(connection, "update_person", parameters.ToArray());
if (affecterows > 0)
{
//prompt for success
if (statussuspect.SelectedValue == "DETAINED")
{
if ((!Page.ClientScript.IsStartupScriptRegistered("alert")))
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "notifyedit();", true);
}
}
if ((!Page.ClientScript.IsStartupScriptRegistered("alert")))
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "notifysuccess();", true);
}
}
}
Переменная affecterows
возвращает -1, а это значит, что нет обновленных записей.
Теперь, чтобы убедиться, что все в порядке, я попытался изменить содержимое текстового поля с именем alias_
. К моему удивлению, после нажатия кнопки сохранения содержимое текстового поля alias_
возвращается к исходному контенту.
Есть ли какое-либо дополнительное свойство, которое необходимо установить?
спасибо.
Используйте если (page.IsPostback!) На Pageload – Manu
@Manu: Ваш комментарий является первым ответом на эту проблему , –
Да. Я снова ответил на этот вопрос ниже. – Manu