Кнопка удаления Gridview в ASP.NET - PullRequest
2 голосов
/ 11 февраля 2011

Я только что задал вопрос на эту тему; У всей строки есть кнопка удаления в Gridview

У меня есть простая таблица AVUKAT

Столбцы -> HESAP, MUSTERI, AVUKAT

И я показываю данные в Gridview.

Я активирую AutoGenerateDeleteButton.

enter image description here

Но когда я нажимаю кнопку Удалить длястрока, я получаю сообщение об ошибке, подобное этому.

Server Error in '/' Application.
Deleting is not supported by data source 'GridviewDataSource' unless DeleteCommand is specified.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.NotSupportedException: Deleting is not supported by data source 'GridviewDataSource' unless DeleteCommand is specified.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Какая функция активируется при нажатии кнопки удаления?

Каким должен быть код этой функции?

Ответы [ 3 ]

2 голосов
/ 11 февраля 2011

Взгляните на эту статью MSDN: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.sqldatasource.deletecommand.aspx#Y725

В ней описывается настройка SQLDataSource для удаления данных из базы данных.

Обновление

В вашем источнике SQLDataSource отсутствует «Удалить параметры» ( Ссылка MSDN ).

Обновите источник SQLDataSource, включив в него DeleteParameters следующим образом (вам необходимо обновить такие вещи, как ConnectionString и ControlIDsПараметры управления):

<asp:SqlDataSource
   id="SqlDataSource1"
   runat="server"
   ConnectionString="myConnectionString"
   SelectCommand="SELECT * FROM [AVUKAT] ORDER BY [MUSTERI]" 
   DeleteCommand="DELETE FROM [AVUKAT] WHERE MUSTERI = @MUSTERI AND AVUKAT = @AVUKAT AND HESAP = @HESAP">
   <DeleteParameters>
      <asp:ControlParameter Name="MUSTERI" ControlId="DropDownListID" PropertyName="SelectedValue" />
      <asp:ControlParameter Name="AVUKAT" ControlId="DropDownListID" PropertyName="SelectedValue" />
      <asp:ControlParameter Name="HESAP" ControlId="DropDownListID" PropertyName="SelectedValue" />
   </DeleteParameters>
</asp:SqlDataSource>
1 голос
/ 22 июня 2011

Помимо этого, не забудьте использовать первичный ключ в своей таблице, для которого вы будете выполнять эту команду удаления. При отсутствии первичного ключа команда delete выдаст исключение, поскольку сгенерированный запрос может быть неоднозначным, если несколько строк будут иметь одинаковое значение (На самом деле вы не сможете присоединить встроенную команду DELETE до тех пор, пока ваша таблица не будет иметь первичный ключ.)

0 голосов
/ 11 февраля 2011

Вам необходимо реализовать событие RowDeleting, как описано в этого руководства .

...