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 :

Problème dans création NewRow


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 79
    Par défaut Problème dans création NewRow
    Bonjour,

    voici le code que jai ecrit pour ajouter une nouvelle ligne dans un datatable:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     Dim produit As DataRow = dtProduits.NewRow()
          produit("nom") = txtNom.Text.Trim
          produit("prix") = txtPrix.Text.Trim
          ' on ajoute la ligne à la table
          'Application.Lock()
          Try
            dtProduits.Rows.Add(produit)
            lblInfo3.Text = "Ajout réussi"
            ' nettoyage
            txtNom.Text = ""
            txtPrix.Text = ""
          Catch ex As Exception
            lblInfo3.Text = String.Format("Erreur : {0}", ex.Message)
          End Try
    mais a l'execution je recois le message suivant sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim produit As DataRow = dtProduits.NewRow()
    :

    Erreur 1 'System.Data.DataRow.Protected Friend Sub New(builder As System.Data.DataRowBuilder)' n'est pas accessible dans ce contexte, car il est 'Protected Friend'.
    Si quelqu'un a deja rencontré cet erreur peut il m'expliquer SVP.
    Cordialement.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 18
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 26
    Par défaut
    Bonjour jeune developpeur,

    Essai avec un Array(of Object) = {"param1", "param2"} ou paramX est le contenu de tes TextBoxes.

    Je reprend ton 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
     
    Dim produit As String() = {txtNom.Text.Trim(), txtPrix.Text.Trim()}
          ' on ajoute la ligne à la table
          'Application.Lock()
     
          Try
            dtProduits.Rows.Add(produit)
          Catch ex As Exception
            lblInfo3.Text = String.Format("Erreur : {0}", ex.Message)
          End Try
     
          lblInfo3.Text = "Ajout réussi"
          ' nettoyage
          txtNom.Text = ""
          txtPrix.Text = ""

  3. #3
    Membre chevronné Avatar de Redouane
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    435
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 435
    Par défaut
    Bonjour,

    essaye d'appeler tt le namespace, au lieu de DataRow, faire System.Data.DataRow :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim produit As System.Data.DataRow= dtProduits.NewRow()
    je pense que tu utilise un constructeur (nouvelle instance) DataRow qui déstiné uniquement pour un usage interne.

  4. #4
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 79
    Par défaut
    merci beaucoup redouane.

    le code a bien marché pour moi mais l'ajout ne passe pas coté base de données.

    Si vous pouvez encore m'eclaircir cette etape, j'en serais reconnaissante.

    Voici le code complet :

    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
      Private Sub btnAjouter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAjouter.Click
          ' ajout d'un nouvel élément à la table des produits
          ' il faut tout d'abord que les données soient valides
          rfvNom.Validate()
          rfvPrix.Validate()
          cvPrix.Validate()
          If Not rfvNom.IsValid Or Not rfvPrix.IsValid Or Not cvPrix.IsValid Then
            ' de nouveau le formulaire de saisie
            afficheAjout()
            Exit Sub
          End If
          ' on crée une ligne
          Dim produit As String() = {txtNom.Text.Trim(), txtPrix.Text.Trim()}
          ' on ajoute la ligne à la table
          Application.Lock()
          Try
            dtProduits.Rows.Add(produit)
            lblInfo3.Text = "Ajout réussi"
            ' nettoyage
            txtNom.Text = ""
            txtPrix.Text = ""
          Catch ex As Exception
            lblInfo3.Text = String.Format("Erreur : {0}", ex.Message)
          End Try
          Application.UnLock()
        End Sub
    Cordialement.

  5. #5
    Membre chevronné Avatar de Redouane
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    435
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 435
    Par défaut
    C'est Nasame qui t'a donné cette solution

    Citation Envoyé par Nasame Voir le message
    Essai avec un Array(of Object) = {"param1", "param2"} ou paramX est le contenu de tes TextBoxes[/code]

  6. #6
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 79
    Par défaut
    Desolée jai pas fait attention

    Grand merci a Nasame.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 18
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 26
    Par défaut


    Ton objet DataTable est "une vue" en mémoire de ta table en base donc si tu le modifies, la source de données n'est pas impactée...
    Il te faut des méthodes d'insert, modif, delete et les appeler..

    Mais je n'ai pas l'habitude de travailler avec des dataTable, je me trompe peut-être...

    Bon courage,

    Nasame.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/06/2006, 19h03
  2. Réponses: 4
    Dernier message: 16/05/2006, 23h15
  3. Réponses: 3
    Dernier message: 19/04/2006, 18h44
  4. Réponses: 9
    Dernier message: 05/04/2006, 17h48
  5. [Eclipse 3.0] [Tomcat] problème dans la création du .war
    Par lipao17 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 12/03/2005, 13h45

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