1

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

如果我使用 SELECT 郊区 FROM sites 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();            }
    }
   }
4

2 回答 2

0

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

if(!Page.IsPostBack)
{
    //bind items to dropdown list here
}
于 2013-01-05T21:32:49.813 回答
0

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

于 2013-01-05T22:46:27.170 回答