Когда кнопка удаления нажата при запуске gridview, необходимо объявить скалярную переменную @Content

Я пытаюсь включить удаление в виде сетки. Когда вы запускаете этот код и нажимаете кнопку удаления, вы получаете сообщение об ошибке. Необходимо объявить скалярную переменную «@Content».


Код

    <asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1">
    <Columns>
        <asp:CommandField ShowDeleteButton="True" />
        <asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" />
        <asp:BoundField DataField="Content" HeaderText="Content" SortExpression="Content" />
    </Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" 
    runat="server" 
    ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
    SelectCommand="SELECT * FROM [ImportantNews]" 
     DeleteCommand="DELETE FROM [ImportantNews] WHERE [Content] = @Content AND [Title] = @Title">
    <DeleteParameters>
        <asp:Parameter Name="Title" Type="string"/>
        <asp:Parameter Name="Content" Type="string"/>
    </DeleteParameters>
  </asp:SqlDataSource>


Обратите внимание, что я использую Asp.net 2.0.


person Carlos Cannon    schedule 16.10.2012    source источник


Ответы (3)


Вы можете попробовать это

<asp:GridView ID="GridView2" runat="server" DataKeyNames="Content,Title"........
person jams    schedule 16.10.2012
comment
Это может иметь больше смысла. Я не использовал GridView около 8 лет, и SqlDataSource также устаревает. - person andleer; 18.10.2012

Вам необходимо указать значения параметров в коде позади.

SqlDataSource1.DeleteParameters.Add("Content", "ABC");
SqlDataSource1.DeleteParameters.Add("Title", "XYZ");
person andleer    schedule 16.10.2012
comment
Чем заменить ABC и XYZ? - person Carlos Cannon; 18.10.2012
comment
Это будут ваши значения фильтра. Честно говоря, не имеет большого смысла фильтровать их в ситуации удаления. Вы хотите удалить записи на основе первичного ключа. - person andleer; 18.10.2012

Я нашел проблему.

Вам нужно установить для свойства DataKeyNames в элементе управления gridview значение GradeID.

Проверьте ответ 1

person M. Allahyari    schedule 07.01.2014