C# 根据选择C更改下拉列表

C# 根据选择C更改下拉列表,c#,mysql,asp.net,drop-down-menu,onselect,C#,Mysql,Asp.net,Drop Down Menu,Onselect,我有两个下拉列表DDCountry和DdPetPist。 DldCountry在MYSQL数据库中有自己的表,所以DdPetPist,我希望DldCounty选择更改填充DdPetPist的表。所以把桌子从英国动物换成法国动物。或者“德国动物” 填充下拉列表的代码 关于为国家/地区选择更改 如果有人能帮忙,我将不胜感激。希望我正确理解: protected void ddlcountry_SelectedIndexChanged(object sender, EventArgs e) { i

我有两个下拉列表DDCountry和DdPetPist。 DldCountry在MYSQL数据库中有自己的表,所以DdPetPist,我希望DldCounty选择更改填充DdPetPist的表。所以把桌子从英国动物换成法国动物。或者“德国动物”

填充下拉列表的代码

关于为国家/地区选择更改


如果有人能帮忙,我将不胜感激。

希望我正确理解:

protected void ddlcountry_SelectedIndexChanged(object sender, EventArgs e)
{
  if(ddlcountry.Text!=string.Empty)
  {
      MySqlCommand cd = new MySqlCommand(string.Format("SELECT * FROM {0}_Animals",ddlcountry.Text), cs);
      cs.Open();
      MySqlDataReader ddlSpecie = cd.ExecuteReader();
      DdPetPist.DataSource = ddlSpecie;
      DdPetPist.DataValueField = "Specie";
      DdPetPist.DataTextField = "Specie";
      DdPetPist.DataBind();
      cs.Close();
      cs.Dispose();
  }
}  

希望我正确理解:

protected void ddlcountry_SelectedIndexChanged(object sender, EventArgs e)
{
  if(ddlcountry.Text!=string.Empty)
  {
      MySqlCommand cd = new MySqlCommand(string.Format("SELECT * FROM {0}_Animals",ddlcountry.Text), cs);
      cs.Open();
      MySqlDataReader ddlSpecie = cd.ExecuteReader();
      DdPetPist.DataSource = ddlSpecie;
      DdPetPist.DataValueField = "Specie";
      DdPetPist.DataTextField = "Specie";
      DdPetPist.DataBind();
      cs.Close();
      cs.Dispose();
  }
}  
试试这个

我假设国家包含与表名完全相同的国家名称。即英国、法国等,表名为英国动物、法国动物

protected void ddlcountry_SelectedIndexChanged(object sender, EventArgs e)
{
    string country = ddlcountry.SelectedValue;
    string query =  "SELECT * FROM "+ country + "_Animals";   

     MySqlCommand cd = new MySqlCommand(query, cs);
     cs.Open();
     MySqlDataReader ddlSpecie = cd.ExecuteReader();
     DdPetPist.DataSource = ddlSpecie;
     DdPetPist.DataValueField = "Specie";
     DdPetPist.DataTextField = "Specie";
     DdPetPist.DataBind();
     cs.Close();
     cs.Dispose();
}  
试试这个

我假设国家包含与表名完全相同的国家名称。即英国、法国等,表名为英国动物、法国动物

protected void ddlcountry_SelectedIndexChanged(object sender, EventArgs e)
{
    string country = ddlcountry.SelectedValue;
    string query =  "SELECT * FROM "+ country + "_Animals";   

     MySqlCommand cd = new MySqlCommand(query, cs);
     cs.Open();
     MySqlDataReader ddlSpecie = cd.ExecuteReader();
     DdPetPist.DataSource = ddlSpecie;
     DdPetPist.DataValueField = "Specie";
     DdPetPist.DataTextField = "Specie";
     DdPetPist.DataBind();
     cs.Close();
     cs.Dispose();
}  

您的MySqlDatareader和下拉列表具有相同的名称-ddlcountry。首先更改其中一个。您的MySqlDatareader和下拉列表具有相同的名称-ddlcountry。首先更改其中一个。谢谢,这是有效的,不幸的是,我已经接受了@Tinwor的答案。无论如何谢谢你。谢谢你,这是有效的,不幸的是我已经接受了@Tinwor的答案。无论如何,谢谢你。我不是100%确定ASP.Net如何验证下拉列表值,但是要确保黑客不能将HTML中的国家/地区值更改为类似用户的值-如果你有用户帐户表,可以从你的用户帐户表中选择。最好的方法可能是从国家名称中删掉除前两个字符以外的所有字符。我不能100%确定ASP.Net如何验证下拉列表值,但要确保黑客不能将HTML中的国家值更改为类似用户的值—如果您有用户帐户表,可以从您的用户帐户表中选择。最好的办法可能是从国名中删去除前两个字符以外的所有字符。