我有两个相互影响的下拉列表,例如,如果您在第一个下拉列表中选择英国,则第二个下拉列表将从英国表中填充,如果您选择德国,它将通过德国表填充,所以在。每个表都包含相同的三列 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/