州用と都市用の 2 つのドロップダウン リストがあります。正常に動作するデータベースから州のドロップダウンを作成しています。そして、州のインデックスが変更されると、都市のドロップダウンにデータが入力される方法があります。なんらかの理由で状態を変更し、メソッドが populateCity ドロップダウンにヒットすると、次のエラーが表示されます
Sqleexception エラー: 列名 'ME' が無効です
ME はメイン州を選んだという理由だけで、da.fill(ds, "City"); の下で、選択したすべての州で発生します。なぜそれを続けているのかわからない。
州のドロップダウンと都市のドロップダウンのコードは次のとおりです。
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConString"].ConnectionString);
SqlCommand cmdState = new SqlCommand("SELECT DISTINCT state,abr FROM tbl_zip ORDER BY state ASC", con);
DataSet dsState = new DataSet();
SqlDataAdapter daState = new SqlDataAdapter(cmdState);
con.Open();
daState.Fill(dsState, "State");
States.DataSource = dsState.Tables[0];
States.DataTextField = "state";
States.DataValueField = "abr";
States.DataBind();
con.Close();
}
}
protected void States_SelectedIndexChanged(object sender, EventArgs e)
{
if (States.SelectedItem.Value != "Select")
{
string st = States.SelectedValue;
PopulateCity(st);
}
}
protected void PopulateCity(string st)
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConString"].ConnectionString);
SqlCommand cmd = new SqlCommand("SELECT DISTINCT city FROM tbl_zip WHERE abr = " + st, con);
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(cmd);
con.Open();
da.Fill(ds, "City");
Cities.DataSource = ds.Tables[0];
Cities.DataTextField = "city";
Cities.DataValueField = "city";
Cities.DataBind();
}