2011-02-11 4 views
2

Je viens de poser une question à ce sujet; All Row has a Delete Button in GridviewGridview Supprimer le bouton dans ASP.NET

J'ai une simple table AVUKAT

Colonnes ->HESAP, MUSTERI, AVUKAT

Et je montre les données dans un GridView. J'ai activé AutoGenerateDeleteButton.

enter image description here

Mais quand je clique sur le bouton Supprimer pour une ligne, je reçois une erreur comme ça.

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. 

Quelle fonction est activée lorsque je clique sur le bouton Supprimer?

Quel devrait être le code de cette fonction?

+0

Soner avez-vous écrit du code pour la suppression? Ou vous venez de frapper ce lien? –

+0

Non je n'écris pas. Juste je demande comment puis-je écrire ce code :) –

Répondre

2

Jetez un oeil à cet article MSDN: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.sqldatasource.deletecommand.aspx#Y725

Il décrit la mise en place du SQLDataSource pour supprimer des données de la base de données.

Mise à jour

Votre SQLDataSource est manquant "Supprimer Paramètres" (MSDN Link).

Mettez à jour votre SQLDataSource pour inclure DeleteParameters comme suit (vous aurez besoin de mettre à jour des choses comme le ConnectionString et ControlIDs des ControlParameters):

<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> 
+0

Mais mon gridview a déjà une source de données. Comment puis-je ajouter une autre source de données à cette grille? –

+0

Qu'est-ce que vous avez actuellement entré en tant que DeleteCommand sur votre source de données? –

+0

SelectCommand = "SELECT * FROM [AVUKAT] ORDER BY [MUSTERI]" DeleteCommand = "SUPPRIMER DE [AVUKAT] O MUS MUSTERI = @MUSTERI ET AVUKAT = @AVUKAT ET HESAP = @HESAP"> N'est-ce pas? –

0

Vous devez implémenter l'événement RowDeleting comme décrit dans this tutorial.

1

En dehors de cela ne pas oublier d'utiliser une clé primaire dans votre tableau dans lequel vous exécuterez cette commande Delete. Cause en l'absence de clé primaire, la commande delete lèvera une exception car la requête générée peut être ambigu si plus d'une ligne aura la même valeur (En fait vous ne pourrez pas joindre la commande DELETE intégrée jusqu'à ce que votre table a une clé primaire.)

Questions connexes