Проблема с событием загрузки

#c# #asp.net #sql #onload-event

#c# #asp.net #sql #onload-событие

Вопрос:

У меня проблема, когда я хочу обновить строку в базе данных. Страница, которая обновляется, также добавляет клиента, но проблема в том, что при обнаружении загрузки страницы была нажата кнопка обновления, кажется, что она продолжает загружать переменные, и я не могу обновить свою базу данных.

 public partial class CustomerInput : System.Web.UI.Page
{
    string update, Id, Name, Address, Suburb, Postcode, Age, Email;

    protected void Page_Load(object sender, EventArgs e)
    {
        update = Request.QueryString["Update"];
        if (update == "true")
        {
            SqlConnection connection = new SqlConnection("server=localhost; uid=xxxx; pwd=xxxx; database=Customer");
            Button1.Text = "Update";

            Id = Request.QueryString["Id"];
            connection.Open();

            SqlCommand command = new SqlCommand("Select * from Customer where Id = "   Id, connection);

            SqlDataReader read = command.ExecuteReader();
            read.Read();
            TextBox1.Text = read[1].ToString();
            TextBox2.Text = read[2].ToString();
            TextBox3.Text = read[3].ToString();
            TextBox4.Text = read[4].ToString();
            TextBox5.Text = read[5].ToString();
            TextBox6.Text = read[6].ToString();

            connection.Close();
            update = string.Empty;
        }

    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        SqlConnection connection = new SqlConnection("server=localhost; uid=xxxx; pwd=xxxx; database=Customer");

        if (Button1.Text == "Update")
        {
            connection.Open();
            SqlCommand command;

            Name = TextBox1.Text;
            Address = TextBox2.Text;
            Suburb = TextBox3.Text;
            Postcode = TextBox4.Text;
            Age = TextBox5.Text;
            Email = TextBox6.Text;


            command = new SqlCommand("UPDATE Customer SET Name = "   "'"   Name   "', "   "Address = "   "'"   Address   "', "   "Suburb = "   "'"   Suburb   "', "
                      "Postcode = "   "'"   Postcode   "', "   "Age = "   "'"   Age   "', "   "Email = "   "'"   Email   "' "   "Where Id ="   Id, connection);

            command.ExecuteNonQuery();
            connection.Close();

        }
        if (Button1.Text == "New Client")
        {
            Name = TextBox1.Text;
            Address = TextBox2.Text;
            Suburb = TextBox3.Text;
            Postcode = TextBox4.Text;
            Age = TextBox5.Text;
            Email = TextBox6.Text;

            Response.Write("Blah");

            SqlCommand command = new SqlCommand("INSERT INTO Customer VALUES ("   "'"   Name   "'"   ", "    "'"   Address   "'"    ", "    "'"   Suburb   "'"    ", " 
                   "'"   Postcode   "'"    ", "    "'"   Age   "'"    ", "    "'"   Email   "'"    ")", connection);

            command.ExecuteNonQuery();
        }

        Button1.Text = "New Client";
    }
}
  

}

Комментарии:

1. it seems to keep loading up the variables какие переменные? Почему вы не можете обновить свою базу данных?

2. Проверьте !Страницу. IsPostBack в Page_Load.

Ответ №1:

В начале события загрузки вашей страницы вам нужно добавить оператор if, чтобы проверить, загружается ли страница в первый раз:

пример:

 if (!IsPostBack)
{
    ... add your code here
}
  

Ответ №2:

Я думаю, вам нужно использовать Page.IsPostBack :

 if (Page.IsPostBack)
{
     // Do Something ..
{
else
{
     // Do something else ..

}