mrassaa
Messages postés143Date d'inscriptionlundi 15 mars 2010StatutMembreDernière intervention12 juin 2013
-
10 août 2010 à 12:10
mrassaa
Messages postés143Date d'inscriptionlundi 15 mars 2010StatutMembreDernière intervention12 juin 2013
-
10 août 2010 à 12:55
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>
mrassaa
Messages postés143Date d'inscriptionlundi 15 mars 2010StatutMembreDernière intervention12 juin 20131 10 août 2010 à 12:55
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.