Кнопка «Отправить» для обновления базы данных, не будет работать, если в page_load указана обратная передача - PullRequest
0 голосов
/ 10 марта 2019

У меня есть страница веб-формы, к которой я собираюсь запросить данные из базы данных, выбрав другие значения из раскрывающегося списка, после того как я выбрал правильное значение, в описании я хочу обновить запись базы данных, пока я нажимаю кнопку отправки,например, имя клиента и статус, будет возвращаться только одна запись, и будет показано описание (я могу сделать это в isPostback и запросить базу данных, используя SQL DataReader, а затем вызвать соответствующий элемент индекса, чтобы получить ее), нокогда я что-то набрал в описании и нажал «отправить», он не обновится в базе данных, но если я не использую if(isPostback), он работает.PS если там нет блока if(ispostback), то dataUpdate.Update() работает хорошо.Итак, мой вопрос:

enter image description here

protected void btnSubmit_Click(object sender, EventArgs e)
{            
   dataUpdate.Update();               
}

Код загрузки страницы:

protected void Page_Load(object sender, EventArgs e)
{
        ValidationSettings.UnobtrusiveValidationMode = UnobtrusiveValidationMode.None;         

        if (!IsPostBack)
        {              
            SqlConnection conn1 = new SqlConnection(cxInfo.ConnectionString);
            string userInfoQuery1 = "select * from users where id=@id";
            SqlCommand userInfo1 = new SqlCommand(userInfoQuery1, conn1);
            userInfo1.Parameters.AddWithValue("@id", dropdlCx.SelectedValue);
            conn1.Open();
            SqlDataReader reader1 = userInfo1.ExecuteReader();
            reader1.Read();
            if (reader1.HasRows )
            {
                lblCxId.Text = "" + reader1[0];
                SqlConnection conn = new SqlConnection(dataUpdate.ConnectionString);
                string userInfoQuery = "select cx_first_name+',' + cx_last_name as 'name',cx_id ,incident_id,description,contact_method from incident where cx_id=@id and status=@status";
                SqlCommand userInfo = new SqlCommand(userInfoQuery, conn);
                userInfo.Parameters.AddWithValue("@id", lblCxId.Text);
                userInfo.Parameters.AddWithValue("@status", dropStatus.SelectedValue);
                conn.Open();
                SqlDataReader reader = userInfo.ExecuteReader();
                reader.Read();
                if (reader.HasRows)
                {
                    lblCxId.Text = "" + reader1[0];
                    txtDesc.Text = (string)reader[3];
                    radioContact.SelectedValue = (string)reader[4];
                    desc= (string)reader[3]; 
                }

                conn.Close();
            }

            conn1.Close();
        }
        if (IsPostBack)
        {
            lblCxId.Text = dropdlCx.SelectedValue;
           /*I want to have txtDesc.txt= database query here, but as long as I add the code here, then the update won't work*/              
        }
    }

Так что я думаю, что есть только одна вещь, которую я получилЗастрял в том, как дать системе понять, что то, что я отправляю, не то, что он собирается обновить, пожалуйста, примите мое значение вместо обновления?

...