IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Impossible d'insérer des données dans ma bd à partir d'un formulaire asp vb.net


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Novembre 2005
    Messages
    338
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 338
    Par défaut Impossible d'insérer des données dans ma bd à partir d'un formulaire asp vb.net
    Bonjour.
    Je m'étais trompé précédemment de forum. je crois être sur le bon.
    Sur mon formulaire sur lequel j'ai des champs de saisie, j'y saisie des données et valide. Rien ne se passe. voilà mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    Imports System.Data.SqlClient
    Imports System.Configuration
     
    Partial Class f_affaire_victime
        Inherits System.Web.UI.Page
        Private SqlCon As SqlConnection
     
        Protected Sub Page_InitComplete(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.InitComplete
            SqlCon = New SqlConnection
            SqlCon.ConnectionString = ConfigurationManager.ConnectionStrings("CyberPlainte").ToString
        End Sub
     
    Dim ReferenceVictime As String = nature_piece.Text & numero_piece.Text
     
            If GloGlobal.NouvelleVictime Then
                ExecuteLDD("insert into t_victime (personne,identifiant,naturepceidentite,numeropceidentite,nom,prenom,datenaissance,sexe,tel,mail,adresse,paysresidence,ville,paysnationalite,profession,employeur,situationmatrimoniale,nbenfant,dateenreg) values ('" & personne.Text & "','" & ReferenceVictime & "','" & nature_piece.Text & "','" & numero_piece.Text & "','" & GloGlobal.ValiderApostrophe(nom.Text) & "','" & GloGlobal.ValiderApostrophe(prenom.Text) & "','" & date_naissance.Text & "','" & sexe.Text & "','" & tel_fax.Text & "','" & GloGlobal.ValiderApostrophe(email.Text) & "','" & GloGlobal.ValiderApostrophe(adresse_postale.Text) & "','" & GloGlobal.ValiderApostrophe(pays_residence.Text) & "','" & GloGlobal.ValiderApostrophe(ville_residence.Text) & "','" & GloGlobal.ValiderApostrophe(pays_origine.Text) & "','" & GloGlobal.ValiderApostrophe(profession.Text) & "','" & GloGlobal.ValiderApostrophe(employeur.Text) & "','" & situation_matrimoniale.Text & "'," & GloGlobal.ValiderDecimal(nombre_enfant_en_charge.Text) & ",'" & Date.Today & "')")
     
                GloGlobal.NouvelleAffaire = True
            Else
                ExecuteLDD("update t_victime set personne='" & personne.Text & "',identifiant='" & ReferenceVictime & "',naturepceidentite='" & nature_piece.Text & "',numeropceidentite='" & numero_piece.Text & "',nom='" & GloGlobal.ValiderApostrophe(nom.Text) & "',prenom='" & GloGlobal.ValiderApostrophe(prenom.Text) & "',datenaissance='" & date_naissance.Text & "',sexe='" & sexe.Text & "',tel='" & tel_fax.Text & "',mail='" & email.Text & "',adresse='" & GloGlobal.ValiderApostrophe(adresse_postale.Text) & "',paysresidence='" & GloGlobal.ValiderApostrophe(pays_residence.Text) & "',ville='" & GloGlobal.ValiderApostrophe(ville_residence.Text) & "',paysnationalite='" & GloGlobal.ValiderApostrophe(pays_origine.Text) & "',profession='" & GloGlobal.ValiderApostrophe(profession.Text) & "',employeur='" & GloGlobal.ValiderApostrophe(employeur.Text) & "',situationmatrimoniale='" & situation_matrimoniale.Text & "',nbenfant=" & GloGlobal.ValiderDecimal(nombre_enfant_en_charge.Text) & " where (identifiant='" & GloGlobal.IdVictime & "')")
            End If
     
            GloGlobal.NouvelleVictime = False
            GloGlobal.IdVictime = ReferenceVictime
            Response.Redirect("f_affaire.aspx", False)
        End Sub
     
    Private Sub ExecuteLDD(ByVal bSql As String)
            Dim CMD As New SqlCommand
            SqlCon.Open()
            CMD.Connection = SqlCon
            CMD.CommandText = bSql
            CMD.ExecuteNonQuery()
            SqlCon.Close()
        End Sub
    End Class
    où GloGlobal est une fonction de portée publique.
    Il n'y a pas de nouvelle ligne dans la base de données mais en plus, toutes les zones de saisies se vident.
    J'ai fouillé et je n'ai rien trouvé.
    Je m'en remets à vous

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2005
    Messages
    165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2005
    Messages : 165
    Par défaut
    Bonjour,

    Pourquoi tu ne passes par l'évènement "Load" de Page ?



    Seb

  3. #3
    Membre éclairé
    Inscrit en
    Novembre 2005
    Messages
    338
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 338
    Par défaut
    c'est au niveau de la validation que je rencontre des difficultés. voilà l'extrait du code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
        Private Sub cmd_suivant_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmd_suivant.Click
    Dim ReferenceVictime As String = nature_piece.Text & numero_piece.Text
     
            If GloGlobal.NouvelleVictime Then
                ExecuteLDD("insert into t_victime (personne,identifiant,naturepceidentite,numeropceidentite,nom,prenom,datenaissance,sexe,tel,mail,adresse,paysresidence,ville,paysnationalite,profession,employeur,situationmatrimoniale,nbenfant,dateenreg) values ('" & personne.Text & "','" & ReferenceVictime & "','" & nature_piece.Text & "','" & numero_piece.Text & "','" & GloGlobal.ValiderApostrophe(nom.Text) & "','" & GloGlobal.ValiderApostrophe(prenom.Text) & "','" & date_naissance.Text & "','" & sexe.Text & "','" & tel_fax.Text & "','" & GloGlobal.ValiderApostrophe(email.Text) & "','" & GloGlobal.ValiderApostrophe(adresse_postale.Text) & "','" & GloGlobal.ValiderApostrophe(pays_residence.Text) & "','" & GloGlobal.ValiderApostrophe(ville_residence.Text) & "','" & GloGlobal.ValiderApostrophe(pays_origine.Text) & "','" & GloGlobal.ValiderApostrophe(profession.Text) & "','" & GloGlobal.ValiderApostrophe(employeur.Text) & "','" & situation_matrimoniale.Text & "'," & GloGlobal.ValiderDecimal(nombre_enfant_en_charge.Text) & ",'" & Date.Today & "')")
     
                GloGlobal.NouvelleAffaire = True
            Else
                ExecuteLDD("update t_victime set personne='" & personne.Text & "',identifiant='" & ReferenceVictime & "',naturepceidentite='" & nature_piece.Text & "',numeropceidentite='" & numero_piece.Text & "',nom='" & GloGlobal.ValiderApostrophe(nom.Text) & "',prenom='" & GloGlobal.ValiderApostrophe(prenom.Text) & "',datenaissance='" & date_naissance.Text & "',sexe='" & sexe.Text & "',tel='" & tel_fax.Text & "',mail='" & email.Text & "',adresse='" & GloGlobal.ValiderApostrophe(adresse_postale.Text) & "',paysresidence='" & GloGlobal.ValiderApostrophe(pays_residence.Text) & "',ville='" & GloGlobal.ValiderApostrophe(ville_residence.Text) & "',paysnationalite='" & GloGlobal.ValiderApostrophe(pays_origine.Text) & "',profession='" & GloGlobal.ValiderApostrophe(profession.Text) & "',employeur='" & GloGlobal.ValiderApostrophe(employeur.Text) & "',situationmatrimoniale='" & situation_matrimoniale.Text & "',nbenfant=" & GloGlobal.ValiderDecimal(nombre_enfant_en_charge.Text) & " where (identifiant='" & GloGlobal.IdVictime & "')")
            End If
     
            GloGlobal.NouvelleVictime = False
            GloGlobal.IdVictime = ReferenceVictime
            Response.Redirect("f_affaire.aspx", False)
        End Sub
    il doit enregistrer les données du formulaire et passer à la page suivante.
    En fait il enregistre mais il enregistre comme s'il voyait les zones de saisies vides

    j'attends impatiemment vos solutions

  4. #4
    Membre éclairé
    Inscrit en
    Novembre 2005
    Messages
    338
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 338
    Par défaut
    Je vois bien mon problème mais il m'est difficile d'y remédier.
    à la validation, mon application voit les champs du formulaire vides alors qu'il y a bel et bien des données.

    A quoi cela est dû et comment y remédier?

  5. #5
    Membre éclairé
    Inscrit en
    Novembre 2005
    Messages
    338
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 338
    Par défaut
    Bien que j'ai changé ma manière d'insérer les données dans la bd, rien ne passe.
    En effet, j'ai créé une procédure stockée dans sqlserver 2008

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    USE [CyberPlainte]
    GO
    /****** Object:  StoredProcedure [dbo].[InsererVictime]    Script Date: 10/10/2013 10:36:36 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    -- =============================================
    -- Author:		<Author,,Name>
    -- Create date: <Create Date,,>
    -- Description:	<Description,,>
    -- =============================================
    ALTER PROCEDURE [dbo].[InsererVictime] 
    	-- Add the parameters for the stored procedure here
    	@Personne nvarchar,
    	@NaturePiece nvarchar,
    	@NumeroPiece nvarchar,
    	@Identifiant nvarchar,
    	@Nom nvarchar,
    	@Prenom nvarchar,
    	@DateNaissance nvarchar,
    	@Sexe nvarchar,
    	@TelFax nvarchar,
    	@Email nvarchar,
    	@AdressePostale nvarchar,
    	@PaysOrigine nvarchar,
    	@PaysResidence nvarchar,
    	@VilleResidence nvarchar,
    	@Profession nvarchar,
    	@Employeur nvarchar,
    	@SituationMatrimoniale nvarchar,
    	@NbEnfantCharge int
    AS
    BEGIN
    	-- SET NOCOUNT ON added to prevent extra result sets from
    	-- interfering with SELECT statements.
    	SET NOCOUNT ON;
     
        -- Insert statements for procedure here
    	insert into t_victime (Personne,NaturePceIdentite,NumeroPceIdentite,Identifiant,Nom,Prenom,DateNaissance,Sexe,Tel,Mail,Adresse,PaysNationalite,PaysResidence,Ville,Profession,Employeur,SituationMatrimoniale,NbEnfant) values (@Personne,@NaturePiece,@NumeroPiece,@Identifiant,@Nom,@Prenom,@DateNaissance,@Sexe,@TelFax,@eMail,@AdressePostale,@PaysOrigine,@PaysResidence,@VilleResidence,@Profession,@Employeur,@SituationMatrimoniale,@NbEnfantCharge)
    END
    Et que je l'ai exécuté dans mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    SqlCon.Open()
                Dim Mycommand As SqlCommand
                Mycommand = New SqlCommand("InsererVictime", SqlCon)
                Mycommand.CommandType = commandType.StoredProcedure
     
                Mycommand.Parameters.Add("@personne", SqlDbType.NVarChar).Value = personne.Text
                Mycommand.Parameters.Add("@naturepiece", SqlDbType.NVarChar).Value = nature_piece.Text
                Mycommand.Parameters.Add("@numeropiece", SqlDbType.NVarChar).Value = numero_piece.Text
                Mycommand.Parameters.Add("@identifiant", SqlDbType.NVarChar).Value = ReferenceVictime
                Mycommand.Parameters.Add("@nom", SqlDbType.NVarChar).Value = nom.Text
                Mycommand.Parameters.Add("@prenom", SqlDbType.NVarChar).Value = prenom.Text
                Mycommand.Parameters.Add("@datenaissance", SqlDbType.NVarChar).Value = date_naissance.Text
                Mycommand.Parameters.Add("@sexe", SqlDbType.NVarChar).Value = sexe.Text
                Mycommand.Parameters.Add("@telfax", SqlDbType.NVarChar).Value = tel_fax.Text
                Mycommand.Parameters.Add("@email", SqlDbType.NVarChar).Value = email.Text
                Mycommand.Parameters.Add("@adressepostale", SqlDbType.NVarChar).Value = adresse_postale.Text
                Mycommand.Parameters.Add("@paysorigine", SqlDbType.NVarChar).Value = pays_origine.Text
                Mycommand.Parameters.Add("@paysresidence", SqlDbType.NVarChar).Value = pays_residence.Text
                Mycommand.Parameters.Add("@villeresidence", SqlDbType.NVarChar).Value = ville_residence.Text
                Mycommand.Parameters.Add("@pofession", SqlDbType.NVarChar).Value = profession.Text
                Mycommand.Parameters.Add("@employeur", SqlDbType.NVarChar).Value = employeur.Text
                Mycommand.Parameters.Add("@situationmatrimoniale", SqlDbType.NVarChar).Value = situation_matrimoniale.Text
                Mycommand.Parameters.Add("@nbenfantcharge", SqlDbType.Int).Value = CInt(nombre_enfant_en_charge.Text)
     
                Dim CommandAdapter As new SqlDataAdapter(Mycommand)
                Mycommand.ExecuteNonQuery()
    Il ne voit pas de valeur dans les zones de saisie.
    C'est énervant à la fin. Et moi qui commençait à m'accrocher à l'ASP

  6. #6
    Membre émérite
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2005
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 462
    Par défaut
    Je pense qu'il faut nous mettre ta page asp.

    Car il n'y a vraiment rien de compliqué dans ton code...

  7. #7
    Membre éclairé Avatar de DeWaRs
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Décembre 2006
    Messages
    291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 291
    Par défaut
    Bonjour,

    Plusieurs chose :
    - Utilisez des requetes parametrées
    - Pourquoi appellez vous votre fonction "ExecuteLDD" dans l'ors de l'INIT de votre page et pas lorsque vous cliquez sur votre bouton de validation ? Sauf erreur de ma part, au moment de l'INIT de la page, les controles ne sont pas encore chargés, donc ne peuvent pas avoir de valeur.
    Si je me trompe, en mot debug, les valeurs "personne.Text", "ReferenceVictime" etc sont-elles correctes, non vide ?

    Cordialement.

    DeWaRs

Discussions similaires

  1. Impossible d'insérer des données dans une table
    Par totot dans le forum Oracle
    Réponses: 2
    Dernier message: 14/03/2015, 14h41
  2. Impossible d'insérer des données dans une simple base access
    Par Archlinux dans le forum Accès aux données
    Réponses: 5
    Dernier message: 23/08/2013, 21h28
  3. Réponses: 2
    Dernier message: 06/11/2009, 17h41
  4. Réponses: 2
    Dernier message: 15/06/2005, 17h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo