Problème avec les requêtes DELETE et UPDATE [Résolu]

Signaler
Messages postés
143
Date d'inscription
lundi 15 mars 2010
Statut
Membre
Dernière intervention
12 juin 2013
-
Messages postés
143
Date d'inscription
lundi 15 mars 2010
Statut
Membre
Dernière intervention
12 juin 2013
-
Salut,
Je suis stagiaire dans une boîte d'informatique à Tunis et j'ai créer un logiciel pour les syndic avec VB.NET. Afin d'être mis sur Internet, je dois le refaire en ASP.Net que je ne maîtrise pas (c'est la première fois que je l'utilise et je n'ai que des notions de VB qui m'aident à avancer).
J'ai créer un formulaire avec un GridView à coté (j'utilise SQLDataSource pour mes requêtes).
Pour le premier formulaire,il n'y a eu aucun problème (insert, update et delete marchent correctement), mais voila que dans mon deuxième formulaire update et delete ne marchent plus (une boîte de message s'ouvre me disant qu'il y a l'exception non gérée iexplorer.exe[6016]) alors qu'insert marche..La seule différence entre les deux tables des deux formulaires est que la première (celle qui marche) possède une clef primaire unique alors que la deuxième a une clef primaire est concaténée (3 propriétés constituant ma clef primaire).
Voici le code VB :

Protected Sub Button4_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button4.Click
        Try

            Me.SqlDataSource1.UpdateParameters(5).DefaultValue = num_CINC.Text
            Me.SqlDataSource1.UpdateParameters(6).DefaultValue = txt_NomR.Text
            Me.SqlDataSource1.UpdateParameters(7).DefaultValue = txt_PrénomR.Text
            Me.SqlDataSource1.UpdateParameters(0).DefaultValue = num_Appartement.Text
            Me.SqlDataSource1.UpdateParameters(1).DefaultValue = num_NEtage.Text
            Me.SqlDataSource1.UpdateParameters(2).DefaultValue = num_NBloc.Text
            Me.SqlDataSource1.UpdateParameters(3).DefaultValue = num_NRes.Text
            Me.SqlDataSource1.UpdateParameters(4).DefaultValue = num_TelR.Text


            Dim NbLine As Integer = Me.SqlDataSource1.Update()


            If NbLine > 0 Then

                Response.Write("<script language='javascript'>alert('Le résident a bien été mis à jour.');</script>")



                Me.GridView1.DataBind()


                Me.txt_NomR.Text = ""
                Me.txt_PrénomR.Text = ""
                Me.num_CINC.Text = ""
                Me.num_Appartement.Text = ""
                Me.num_TelR.Text = ""
                Me.num_NRes.Text = ""
                Me.num_NBloc.Text = ""
                Me.num_NEtage.Text = ""


            End If

        Catch ex As Exception

            Response.Write("<script language='javascript'>alert('Une erreur est survenue durant l'accès à la base de données.');</script>")


        End Try
    End Sub

    Protected Sub Button3_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button3.Click
        Try
            Me.SqlDataSource1.DeleteParameters(0).DefaultValue = num_CINC.Text
            Me.SqlDataSource1.DeleteParameters(1).DefaultValue = txt_NomR.Text
            Me.SqlDataSource1.DeleteParameters(2).DefaultValue = txt_PrénomR.Text

            Dim NbLine As Integer = Me.SqlDataSource1.Delete()


            If NbLine > 0 Then

                Response.Write("<script language='javascript'>alert('Le résident a bien été supprimé de la base de données.');</script>")



                Me.GridView1.DataBind()


                Me.txt_NomR.Text = ""
                Me.txt_PrénomR.Text = ""
                Me.num_CINC.Text = ""
                Me.num_Appartement.Text = ""
                Me.num_TelR.Text = ""
                Me.num_NRes.Text = ""
                Me.num_NBloc.Text = ""
                Me.num_NEtage.Text = ""

            End If

        Catch ex As Exception

            Response.Write("<script language='javascript'>alert('Une erreur est survenue durant l'accès à la base de données.');</script>")


        End Try
    End Sub


Et voici mes requêtes (dans le SQLDataSource) :

" 
                    SelectCommand="SELECT * FROM [Résident]" 
                    ConflictDetection="CompareAllValues" DeleteCommand="DELETE FROM Résident
WHERE        (CINC @CINC) AND (NomR @NomR) AND (PrénomR = @PrénomR)" InsertCommand="INSERT INTO Résident
                         (CINC, NomR, PrénomR, Appartement, NEtage, NBloc, NRes, TelR)
VALUES        (@CINC,@NomR,@PrénomR,@Appartement,@NEtage,@NBloc,@NRes,@TelR)" 
                    OldValuesParameterFormatString="original_{0}" UpdateCommand="UPDATE       Résident
SET                Appartement @Appartement, NEtage @NEtage, NBloc = @NBloc, NRes = @NRes, TelR = @TelR
WHERE        (CINC @CINC) AND (NomR @NomR) AND (PrénomR = @PrénomR)">
                    <DeleteParameters>
                        
                        
                        
                    </DeleteParameters>
                    
                        
                        
                        
                        
                        
                        
                        
                        
                    
                    
                        
                        
                        
                        
                        
                        
                        
                        
                    
                


Forza Taraji!!

1 réponse

Messages postés
143
Date d'inscription
lundi 15 mars 2010
Statut
Membre
Dernière intervention
12 juin 2013
1
Ca y est, j'ai pu résoudre le problème : en fait, dans les options avancées de SQLDataSource j'avais une option qui bloquait Update et Delete. C'était ConflictDetection qui était égal à CompareAllValues (ou quelque chose du même genre). Lorsque je l'ai remis OverwriteChanges (je m'en suis aperçu en comparant les deux formulaires et surtout les deux bloc de propriétés des deux SQLDataSource) comme c'est mis dans le premier formulaire.
En tout cas merci à tout ceux qui ont fais le détour.

Forza Taraji!!