OledbConnection ExecuteScalar返回旧值

时间:2013-01-05 21:24:47

标签: asp.net textbox oledbconnection executescalar

每当值发生变化时,我都会有一个下拉框,文本框应该通过在以下方法中执行select查询来更新。但是,查询总是会返回下拉框中第一个项目的结果。当我调试程序时,文本的值始终是下拉框中第一项的值。

如果我使用SELECT郊区FROM站点WHERE SiteName ='“+ siteId.SelectedValue +”'“然后我得到正确的值显示在文本框中。当查询是从网站选择地址时,我遇到问题时得到正确的值。

protected void siteId_SelectedIndexChanged(object sender,EventArgs e)     {  string connect =“Provider = Microsoft.Jet.OleDb.4.0; Data Source = | DataDirectory | db.mdb”;         使用(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();            }
    }
   }

2 个答案:

答案 0 :(得分:0)

我的猜测是,转到填充列表的位置并添加if(!Page.IsPostBack)

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

答案 1 :(得分:0)

在向下拉列表中添加更改值(新值)之前,您需要清除下拉列表中的现有值(旧值)。