DropDownList 总是删除第一个值?

Posted

技术标签:

【中文标题】DropDownList 总是删除第一个值?【英文标题】:DropDownList always delete the first value? 【发布时间】:2021-05-14 03:19:44 【问题描述】:

我正在创建一个膳食食谱网站。我做了一个管理面板,我想删除我之前添加的一顿饭。还有一个菜单,其中包括餐点。例如,意大利面类别中有 4 餐,它在主页上显示 Pasta(4)。 我作为管理员,如果我想在我的网站上添加新餐点,它可以工作。我选择了一个类别,它正在添加到该类别中。但是对于删除,它工作错误。它总是删除 DropDownList 中的第一个值,即 Meat Foods。你能帮我找到答案吗?

代码如下:

if (Page.IsPostBack == false)

    id = Request.QueryString["YemekId"];
    islem = Request.QueryString["islem"];

    SqlCommand komut2 = new SqlCommand("Select *from Kategoriler", baglan.baglanti());
    SqlDataReader oku2 = komut2.ExecuteReader();
    DropDownList1.DataTextField = "KategoriAd"; //DropDownList'e kategorilerin adlarını text biçiminde oldukları için bu şekilde çektik.
    DropDownList1.DataValueField = "KategoriId"; //DropDownList'e kategorilerin id nolarını value değerinde oldukları için bu şekilde çektik.
    DropDownList1.DataSource = oku2;
    DropDownList1.DataBind();

    SqlCommand komut = new SqlCommand("Select *from Yemek", baglan.baglanti());
    SqlDataReader oku = komut.ExecuteReader();
    DataList1.DataSource = oku;
    DataList1.DataBind();


//silme işlemi
if (islem == "sil")

    SqlCommand komutsilme = new SqlCommand("Delete from Yemek where YemekId=@s1", baglan.baglanti());
    komutsilme.Parameters.AddWithValue("@s1", id);
    komutsilme.ExecuteNonQuery();
    baglan.baglanti().Close();

    SqlCommand kategorisil = new SqlCommand("Update Kategoriler set KategoriAdet=KategoriAdet-1 where KategoriId=@k1", baglan.baglanti());
    kategorisil.Parameters.AddWithValue("@k1", DropDownList1.SelectedValue);
    kategorisil.ExecuteNonQuery();
    baglan.baglanti().Close();

    Response.Write("<script> alert('Yemek başarıyla silindi!')</script>");

【问题讨论】:

我忘了提,删除进程;有一个按钮,你可以点击它会从数据库中删除 【参考方案1】:

您将 id 作为字符串从查询字符串传递给参数

komutsilme.Parameters.AddWithValue("@s1", id);

我假设 YemekId 在您的数据库中是一个 int,所以试试这个

komutsilme.Parameters.AddWithValue("@s1", int.Parse(id));

AddWithValue 将导出其值的参数类型,因此请确保它是正确的类型,在这种情况下是 int 而不是 string。

【讨论】:

以上是关于DropDownList 总是删除第一个值?的主要内容,如果未能解决你的问题,请参考以下文章

当用户从DropDownList选择其他选项时如何更改内容

mysql 存储过程批量删除表

C#中ComboBox设置DrowDownStyle为DropDownList后怎么设置显示默认值?

给yii2框架的dropDownList设置默认值

【JS】如何更改dropdownlist 当前选定值

Kendo DropDownList 默认选中值