我有两个下拉列表,每个列表都会起作用,例如,如果您在第一个下拉列表中选择UK,则第二个下拉列表将从UK表中填充,如果您选择Germany,则它将通过German表填充,依此类推。每个表包含相同的三列Specie,Specie_Price和Stock。我想每次从第二个列表中选择一个物种并单击按钮时,将股票整数减少1。我不知道如何构建一个更新语句,以便从第二个下拉菜单中进行选择,我会提供任何帮助。我将在下面发布代码,以使您更好地理解我的意思。

页面加载的第一个下拉列表的代码(国家/地区选择)

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


使用所选国家/地区的Specie填充下拉列表的代码

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


所以我想要的是,当他们选择那里的国家/地区后,他们便点击了按钮并输入ID来减少所买表1的存货。
希望有人能提供帮助,谢谢。

!!更新答案!

最终它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();


        }

    }

最佳答案

首先,连接一个按钮单击事件处理程序,然后在处理程序中执行以下操作:

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%来自哪里,但我认为下拉列表会列出所选的值。

08-06 11:55