从 Gridview 记录不删除
Record from Gridview not deleting
我试图从我的 Gridview 中删除一条记录,但我收到一个 InvalidCastException 消息 "Conversion from string "RefYear" to type 'Integer' is not valid."我也在使用数据密钥。
相关列的 Gridview 代码部分
<asp:TemplateField HeaderText="Ref. Year" SortExpression="ReferenceYear" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("RefYear") %>' />
</ItemTemplate>
<EditItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("RefYear") %>'></asp:Label>
</EditItemTemplate>
<FooterTemplate>
<asp:Button ID="btnInsertRecord" runat="server" CommandName="Insert" Text="Insert Record"
ValidationGroup="Insert" CssClass="buttonBlue" />
</FooterTemplate>
</asp:TemplateField>
代码隐藏
Protected Friend Sub dgvBusinessCompetitions_RowDeleting(ByVal sender As Object, ByVal e As GridViewDeleteEventArgs) Handles dgvBusinessCompetitions.RowDeleting
' Read the keys from data keys
Dim _rewardDescription As String = dgvBusinessCompetitions.DataKeys(e.RowIndex)("RewardDescription")
Dim _referenceYear As Integer = dgvBusinessCompetitions.DataKeyNames(1)
Company.Applications.ProductionEngine.BusinessAccess.BusinessCompetitionBusinessAccess.DeleteBusinessCompetitionReward(_rewardDescription,
_referenceYear,
_groupType)
InformationBox.ShowSuccessMessage("Record deleted successfully.")
loadBusinessCompetitionsConditions()
End Sub
存储过程
ALTER PROCEDURE [dbo].[my_procedure]
@rewardDescription VARCHAR(100),
@groupType VARCHAR (50),
@refYear INT
AS
BEGIN
DELETE FROM myTable
WHERE RewardDescription = @rewardDescription
AND GroupType = @groupType
AND RefYear = @refYear
END
我需要做的是,在单击删除后,我需要删除带有 X 奖励描述、X 组类型和 X RefYear 的特定记录,如存储过程显示的那样。
我试过转换 RefYear,但没用。
有什么想法吗?
已更改
Dim _referenceYear As Integer = dgvBusinessCompetitions.DataKeyNames(1)
到
Dim _referenceYear As Integer = dgvBusinessCompetitions.DataKeys(e.RowIndex)("RefYear")
我试图从我的 Gridview 中删除一条记录,但我收到一个 InvalidCastException 消息 "Conversion from string "RefYear" to type 'Integer' is not valid."我也在使用数据密钥。
相关列的 Gridview 代码部分
<asp:TemplateField HeaderText="Ref. Year" SortExpression="ReferenceYear" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("RefYear") %>' />
</ItemTemplate>
<EditItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("RefYear") %>'></asp:Label>
</EditItemTemplate>
<FooterTemplate>
<asp:Button ID="btnInsertRecord" runat="server" CommandName="Insert" Text="Insert Record"
ValidationGroup="Insert" CssClass="buttonBlue" />
</FooterTemplate>
</asp:TemplateField>
代码隐藏
Protected Friend Sub dgvBusinessCompetitions_RowDeleting(ByVal sender As Object, ByVal e As GridViewDeleteEventArgs) Handles dgvBusinessCompetitions.RowDeleting
' Read the keys from data keys
Dim _rewardDescription As String = dgvBusinessCompetitions.DataKeys(e.RowIndex)("RewardDescription")
Dim _referenceYear As Integer = dgvBusinessCompetitions.DataKeyNames(1)
Company.Applications.ProductionEngine.BusinessAccess.BusinessCompetitionBusinessAccess.DeleteBusinessCompetitionReward(_rewardDescription,
_referenceYear,
_groupType)
InformationBox.ShowSuccessMessage("Record deleted successfully.")
loadBusinessCompetitionsConditions()
End Sub
存储过程
ALTER PROCEDURE [dbo].[my_procedure]
@rewardDescription VARCHAR(100),
@groupType VARCHAR (50),
@refYear INT
AS
BEGIN
DELETE FROM myTable
WHERE RewardDescription = @rewardDescription
AND GroupType = @groupType
AND RefYear = @refYear
END
我需要做的是,在单击删除后,我需要删除带有 X 奖励描述、X 组类型和 X RefYear 的特定记录,如存储过程显示的那样。
我试过转换 RefYear,但没用。
有什么想法吗?
已更改
Dim _referenceYear As Integer = dgvBusinessCompetitions.DataKeyNames(1)
到
Dim _referenceYear As Integer = dgvBusinessCompetitions.DataKeys(e.RowIndex)("RefYear")