c# - 通过减少库存更新数据库 C# 和 mysql

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

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

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

关于c# - 通过减少库存更新数据库 C# 和 mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20193897/

相关文章:

c# - 如何监控 Active Directory 用户登录/注销?

c# - 将参数或参数传递给 Uwp 中的后台任务

PHP Codeigniter 数据库助手类 "No tables used"

mysql - 优化对另一个表中可选字段的查询

c# - 将密码加密并存储在 web.config 文件中

c# - 无法在 Firefox 浏览器上使用 AjaxFileUpload 控件的 asp.net WebForm 中更新标签

c# - 使用 get vs 属性 vs 方法

c# - 从文件到屏幕绘制骨骼动画

mysql - 内连接 m/n 关系表和某一列的总和

javascript - 加载 jQuery 的最佳方式是什么?