2013-11-25 20 views
0

我有兩個下拉列表,每個都會起作用,例如如果您在第一個下拉列表中選擇UK,第二個下拉列表中將填入英國表格,如果您選擇德國將通過德國表等填充。每個表格包含相同的三列Specie,Specie_Price和Stock。每次從第二個列表中選擇一個物種並且發生按鈕點擊時,我想將存量整數減1。我迷失在如何建立一個更新聲明來做到這一點從第二下拉選擇,我會appriciate任何幫助。我會在下面發佈代碼,讓你更好地理解我的意思。通過減量股票C#和mysql更新數據庫

的第一個下拉列表在頁面加載(選擇國家),其填充與正金從

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 Page_Load(object sender, EventArgs e) 
{ 
    if (!Page.IsPostBack) 
    { 
     MySqlCommand cd2 = new MySqlCommand("SELECT * FROM Country", cs); 
     cs.Open(); 
     MySqlDataReader ddlCountry = cd2.ExecuteReader(); 
     ddlcountry.DataSource = ddlCountry; 
     ddlcountry.DataValueField = "Country"; 
     ddlcountry.DataTextField = "Country"; 
     ddlcountry.DataBind(); 
     cs.Close(); 
     cs.Dispose(); 
    } 
} 

代碼代碼我想要的是,當他們選擇了那裏的國家然後物種他們點擊按鈕和id遞減表股票選擇買1 我希望有人可以h elp,謝謝。

!! UPDATE ANSWER !!

得到它的工作100%,最終,

protected void Button3_Click(object sender, EventArgs e) 
    { 

     string selection_price = DdPetPist.SelectedValue; 
     var myquery = string.Format("UPDATE Animals SET Stock = Stock - 1 WHERE Specie ='{1}' and Country ='{0}'", ddlcountry.SelectedItem.ToString().Trim(), selection_price); 
     using (MySqlConnection c = new MySqlConnection(connection string here)) 
     using (MySqlCommand cmd = new MySqlCommand(myquery, c)) 
     { 
      c.Open(); 
      cmd.ExecuteNonQuery(); 
      c.Close(); 


     } 

    } 
+0

每個國家的動物表的設計聞起來非常糟糕。你確定你的動物表中只有「國家」屬性並不好嗎? – SJuan76

+0

嗯,我雖然首先,但我發現這種方式工作得很好。現在唯一的問題就是一旦選擇了該國的動物,就試圖讓它減少庫存。 – Beep

回答

1

首先,掛鉤一個按鈕單擊事件處理程序,然後在處理程序中做這樣的事情:

var sql = string.Format(
    "UPDATE {0}_Animals SET Stock = Stock - 1 WHERE Specie = @Specie", 
     ddlcountry.Text); 
using (MySqlConnection c = new MySqlConnection(cString)) 
using (MySqlCommand cmd = new MySqlCommand(sql, c)) 
{ 
    c.Open(); 
    cmd.Parameters.AddWithValue("@Specie", specie); 
    cmd.ExecuteNonQuery(); 
} 

其中cString是連接字符串,specie是標識符。我不是100%確定它來自哪裏,但我認爲下拉列表選定的值。

+0

謝謝,問題是它看起來像我可以使用它,因爲硬幣開始一列。 – Beep

+0

@Beep:什麼?我不明白你在說什麼。 –

+0

它無法工作,但即時通訊將嘗試和改變我的程序只使用一個表與硬幣,價格,股票和國家,那麼我可以如何使用你的答案。 – Beep