OledbConnection ExecuteScalar возвращает старое значение

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

Если я использую SELECT suburb FROM sites WHERE SiteName = '"+ siteId.SelectedValue +"' "Тогда я получаю правильные значения, отображаемые в текстовом поле. Когда запрос - Выберите адрес с сайтов, когда у меня возникнут проблемы, получите правильное значение.

protected void siteId_SelectedIndexChanged (отправитель объекта, EventArgs e) {string connect = "Provider = Microsoft.Jet.OleDb.4.0; Data Source = | DataDirectory | db.mdb"; using (System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection (connect)) {

         conn.Open();
        string insertQuery= "SELECT SiteAddress FROM sites WHERE SiteName = '" + siteId.SelectedValue + "'";
        using (System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand(insertQuery, conn))
        {

             object text =cmd.ExecuteScalar();
             string final = text.ToString();

             TextBox1.Text = final;

            conn.Close();
            Dispose();            }
    }
   }

person user1951810    schedule 05.01.2013    source источник


Ответы (2)


Вам необходимо очистить существующие значения (старые значения) в раскрывающемся списке, прежде чем добавлять измененные значения (новые значения) в раскрывающийся список.

person Amit    schedule 05.01.2013

Думаю, перейдите туда, где у вас есть список, и добавьте if(!Page.IsPostBack)

if(!Page.IsPostBack)
{
    //bind items to dropdown list here
}
person codingbiz    schedule 05.01.2013