2013-11-23 51 views
0

我有2個下拉列表ddlcountryDdPetPistddlcountry在MYSQL數據庫中有自己的表,所以劑量DdPetPist,我想ddlcounty選擇改變表填充DdPetPist。所以將表格從UK_Animals更改爲France_Animals。或德國動物。用於填充上選擇更改下拉列表根據選擇更改下拉列表C#

protected void Page_Load(object sender, EventArgs e) 
     { 
      if (!Page.IsPostBack) 
      { 
       MySqlCommand cd2 = new MySqlCommand("SELECT * FROM Country", cs); // need to make it so changes database 
       cs.Open(); 
       MySqlDataReader ddlCountry = cd2.ExecuteReader(); 
       ddlcountry.DataSource = ddlCountry; 
       ddlcountry.DataValueField = "Country"; 
       ddlcountry.DataTextField = "Country"; 
       ddlcountry.DataBind(); 
       cs.Close(); 
       cs.Dispose(); 

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

爲ddlcountry

protected void ddlcountry_SelectedIndexChanged(object sender, EventArgs e) 
    { 

    } 

會接力

代碼很感激,如果有人可以幫助。

+1

您的MySqlDatareader和下拉列表具有相同的名稱 - ddlcountry。先改變其中一個。 – afzalulh

回答

2

希望我有正確理解:

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(); 
    } 
} 
+1

用於清理字符串連接的+1。 – afzalulh

+0

神奇的工作,謝謝。 – Beep

+0

我不是100%確定ASP.Net如何驗證下拉值,但要確保黑客無法將HTML中的國家/地區值更改爲'Users --'(可以從您的用戶帳戶中選擇表,如果你有一個)。最好的辦法可能是砍掉除國名之外的前兩個字符。 – nemec

2

試試這個

我假設ddlcountry包含國完全相同的名字作爲表名(即英國,法國等)和表名(UK_Animals,France_Animals)

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(); 
} 
+0

謝謝它的劑量工作,不幸的是我已經接受了@Tinwor的解答。不管怎樣,謝謝你。 – Beep

相關問題