Запись из Gridview не удаляется - PullRequest
0 голосов
/ 28 июня 2018

Я пытаюсь удалить запись из моего Gridview и получаю исключение InvalidCastException с сообщением «Преобразование из строки« RefYear »в тип« Integer »недопустимо». Я также использую ключи данных.

Раздел кода 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, но он не работал.

Есть идеи?

1 Ответ

0 голосов
/ 28 июня 2018

Изменено

Dim _referenceYear As Integer = dgvBusinessCompetitions.DataKeyNames(1)

К

Dim _referenceYear As Integer = dgvBusinessCompetitions.DataKeys(e.RowIndex)("RefYear")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...