我正在尝试使用ASP.net中的DropDownList删除SQL Server数据库表中的一行。
我正在尝试从DropDownList中选择一个ID,并删除我表中的那一行。
但是,相反,列表中的第一项正在被删除
以下是我的数据库表:
[ID] INT IDENTITY (1, 1) NOT NULL,
[Name] NVARCHAR (50) NOT NULL,
[Order] INT NOT NULL,
[Desc] NVARCHAR (50) NULL
这是我的C#:
try
{
con.Open();
SqlCommand cmd = new SqlCommand();
cmd = new SqlCommand("delete from tblImages where ID='" + ddlDeleteHomeSlideImage.SelectedItem.ToString() + "'", con);
cmd.ExecuteNonQuery();
con.Close();
}
catch (Exception ex)
{
ResultLabel.Text = ex.Message.ToString();
}
这是我的ASPX:
<div class="panel-body">
<strong>Image to delete: </strong>
<br />
<asp:DropDownList ID="ddlDeleteHomeSlideImage" runat="server">
</asp:DropDownList>
<br />
<asp:Button ID="btnDeleteHomeSlideImage" CssClass="btn btn-danger" runat="server" Text="Delete" OnClick="btnDeleteHomeSlideImage_Click" />
<asp:Label ID="ResultLabel" runat="server" Text=""></asp:Label>
</div>
答案 0 :(得分:2)
基于@Sweg解决方案,使用SQL参数来避免SQL注入
{
"dataset": [
{
"seriesname": "Item1 Price",
"data": [
{
"value": 4.72
},
{
"value": 2.81
},
{
"value": 6.18
},
{
"value": 5.17
},
{
"value": 2.94
},
{
"value": 3.77
},
{
"value": 1.7
},
{
"value": 6.72
},
{
"value": 4.61
}
]
},
{
"seriesname": "Item2 Price",
"data": [
{
"value": 2.49
},
{
"value": 0.72
},
{
"value": 4.06
},
{
"value": 1.74
},
{
"value": 7.23
},
{
"value": 5.83
},
{
"value": 2.59
},
{
"value": 7.54
},
{
"value": 7.02
}
]
}
],
"categories": [
{
"label": "Jan"
},
{
"label": "Feb"
},
{
"label": "Mar"
},
{
"label": "Apr"
},
{
"label": "May"
},
{
"label": "Jun"
},
{
"label": "Jul"
},
{
"label": "Aug"
},
{
"label": "Sept"
}
]
}
答案 1 :(得分:0)
我发现了问题所在。我在SQL命令中删除了单引号,现在工作正常。
这是有效的代码:
con.Open();
SqlCommand cmd = new SqlCommand();
cmd = new SqlCommand("delete from tblImages where ID=" + ddlDeleteHomeSlideImage.SelectedItem.ToString(), con);
cmd.ExecuteNonQuery();
con.Close();
答案 2 :(得分:-1)
试试这个:
<asp:DropDownList ID="ddlDeleteHomeSlideImage" AutoPostBack="true" runat="server"> </asp:DropDownList>
如果更改所选项目,您的DropDownList将会更新。现在你的DropDownList将在服务器端更新。