我有两个下拉列表会影响每一个,例如,如果您在第一个下拉列表中选择英国,则第二个下拉列表将从英国表中填充,如果您选择德国,它将通过德语表填充,因此上。每个表包含相同的三列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();
}
}
答案 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%确定来自哪里,但我认为下拉列出了选定的值。