通过减量库存C#和mysql更新数据库

时间:2013-11-25 13:06:55

标签: c# mysql asp.net drop-down-menu

我有两个下拉列表会影响每一个,例如,如果您在第一个下拉列表中选择英国,则第二个下拉列表将从英国表中填充,如果您选择德国,它将通过德语表填充,因此上。每个表包含相同的三列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();


        }

    }

1 个答案:

答案 0 :(得分: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%确定来自哪里,但我认为下拉列出了选定的值。