我有2个列表框,用于存储客户的点赞和不喜欢。选中一个项目后,每个列表框下方都有一个按钮,其中一个显示“删除喜欢”,另一个显示“删除不喜欢”。当我单击任一按钮时,什么也没有发生。我的屏幕刚刚刷新。一段时间以来,它运行良好,并且此后我还添加了一个与存储过程绑定的搜索框。这是我所做的唯一重大更改,尽管不确定为什么会产生任何影响。
我确实删除了我添加的搜索框,但这并没有改变任何内容。我将按钮上的自动回发更改为false,也没有任何改变。我删除了数据绑定,重新添加了它们,似乎什么也无法使按钮正常工作。
这是“删除喜欢的照片”按钮。由于“删除不喜欢”按钮是相同的,因此我不会粘贴该代码。
Protected Sub RemoveLikeBtn_Click(sender As Object, e As EventArgs) Handles RemoveLikeBtn.Click
Dim connection As New SqlConnection(My.Settings.dbInterests)
Dim insertProcedure As String = "sp_Delete_ClientInterests"
Dim insertCommand As New SqlCommand(insertProcedure, connection)
insertCommand.CommandType = CommandType.StoredProcedure
insertCommand.Parameters.AddWithValue("@ClientInterestID", LikesLB.SelectedValue)
Try
connection.Open()
insertCommand.ExecuteNonQuery()
Catch ex As SqlException
MsgBox("Please select an interest to remove")
Finally
connection.Close()
End Try
LikesLB.DataBind()
InterestsLB.DataBind()
DislikesLB.DataBind()
这是存储过程
CREATE PROCEDURE [dbo].[sp_Delete_ClientInterests]
(@ClientInterestID INT)
AS
DELETE FROM ClientInterests
WHERE ID = @ClientInterestID;
GO
这是绑定到的列表框,以及按钮控件本身
<div class="col-md-3 bgLightgreen">
<h5>Individual Likes</h5>
<telerik:RadListBox ID="LikesLB" runat="server" Height="500px" Width="100%" Sort="Ascending" DataSourceID="dboInterestLikeList" DataTextField="Interest" DataValueField="InterestID" Skin="MetroTouch">
<ButtonSettings TransferButtons="All"></ButtonSettings>
</telerik:RadListBox>
<asp:SqlDataSource ID="dboInterestLikeList" runat="server" ConnectionString="<%$ ConnectionStrings:Interests.My.MySettings.dbInterests %>" SelectCommand="sp_Client_Interest_Likes_List" SelectCommandType="StoredProcedure">
<SelectParameters>
<asp:ControlParameter ControlID="ClientDDL" Name="ClientID" PropertyName="SelectedValue" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
<br />
<br />
<telerik:RadButton ID="RemoveLikeBtn" runat="server" Text="Remove a Like" BackColor="#CCCCCC"></telerik:RadButton>
</div>
答案 0 :(得分:0)
我建议使用传统调试:
RemoveLikeBtn_Click
上放置一个断点,并检查LikesLB.SelectedValue
是否返回期望的ID。 GRANT EXECUTE ON [dbo].[sp_Delete_ClientInterests] TO PUBLIC
,然后查看它是否有效。REVOKE EXECUTE ON [dbo].[uspLogError] TO PUBLIC
并仅授予执行所需角色的权限。