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 :

parcourir gridview et insérer dans une base sql server


Sujet :

ASP.NET

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2010
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 89
    Points : 34
    Points
    34
    Par défaut parcourir gridview et insérer dans une base sql server
    Bonjour
    je veux parcourir mon gridview pour récupérer les données qui y sont saisies et les enregistrer dans ma base sql server (sachant que ces données sont directement saisies par l'utilisateur )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim ro As GridViewRow
    Dim st As Double
    Dim s As Double
    s = 0
     
    For Each ro In GridView1.Rows
            st = ro.Cells(1).Text
            msgbox(st)   ' pour vérifier qu'on récupère bien la valeur
            s = s + st
    next
     
    msgbox(s.toString)
    mais la première boite de dialogue est vide, et la deuxième contient 0, ce qui indique qu'on n'a pas bien récupérer les données de gridview !!

    Pouvez vous m'expliquer pourqoui S.V.P ?
    merci beaucoup pour vos aides

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 360
    Points : 486
    Points
    486
    Par défaut
    bonjour,

    je penses que tu dois te tromper...

    En fait si tu passes sur chaque ligne de ton gridview et sur chaque cellule, il te faut récupérer le control qui doit être à l'intérieur pour récupérer sa valeur...

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2010
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 89
    Points : 34
    Points
    34
    Par défaut
    merci pour ta réponse
    dans mon gridview, j'ai des textbox, càd:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <Columns>
     
                <asp:TemplateField HeaderText = "C1" >
     
                <ItemTemplate>
                <asp:TextBox ID="TxtBox" runat="server"  ReadOnly="false"  >
                </asp:TextBox>
                </ItemTemplate>
     
                </asp:TemplateField>
    ....
    </Columns>
    alors pour récupérer la valeur du contrôle, j'essaye de faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    row.cells(k).TemplateControl
    et après? je ne trouve pas une méthode pour récupérer sa valeur !!

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 360
    Points : 486
    Points
    486
    Par défaut
    pour récupérer ton textbox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim t as TextBox
    t = ctype(ro.Cells(i).FindControl("IDdeToncontrol"),textbox)

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2010
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 89
    Points : 34
    Points
    34
    Par défaut
    j'ai fais comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim t As TextBox
    t = CType(GridView1.Rows(0).Cells(0).FindControl("TxtBox"), TextBox)
    MsgBox(t.Text)
    mais le MsgBox est vide !

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 360
    Points : 486
    Points
    486
    Par défaut
    tu vérifies le type de ligne du gridview ? ca sinon ta première ligne est celle du header donc pas de textbox, d'ailleurs c'est étonnant que ça ne plante pas ...



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     if (ro.RowType = DataControlRowType.DataRow)
    Dim t As TextBox
    t = CType(GridView1.Rows(0).Cells(0).FindControl("TxtBox"), TextBox)
    MsgBox(t.Text)
    end if

  7. #7
    Nouveau membre du Club
    Inscrit en
    Avril 2010
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 89
    Points : 34
    Points
    34
    Par défaut
    j'ai essayé comme tu as dis mais le même problème toujours !!
    même si je cherche avec google je trouve comment récupérer la valeur d'une ligne sélectionnée d'un gridview, alors est ce qu'il y a une méthode pour rendre une ligne sélectionnée? Si oui, je vais faire une boucle sur les lignes et à chaque fois on rend la ligne sélectionnée et ainsi récupérer les valeurs de ses cellules

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 360
    Points : 486
    Points
    486
    Par défaut
    peux tu poster plus de ton code stp aspx et codebehind

  9. #9
    Nouveau membre du Club
    Inscrit en
    Avril 2010
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 89
    Points : 34
    Points
    34
    Par défaut
    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
    ...
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:GridView ID="GridView1" runat="server"  EmptyDataRowStyle-BackColor = "SkyBlue" EmptyDataRowStyle-Font-Size = "Medium" Style="position: relative; top: 0px; left: 0px;" Height="300px" AutoGenerateColumns="False" PageSize="2" Width="350px" CellPadding="4" ForeColor="#333333" GridLines="None">
                <Columns>
     
                <asp:TemplateField HeaderText = "C1" >
     
                <ItemTemplate>
                <asp:TextBox ID="TxtBox" runat="server"  ReadOnly="false"  >
                </asp:TextBox>
                </ItemTemplate>
     
                </asp:TemplateField>
     
                <asp:TemplateField HeaderText = "C2" >
                <ItemTemplate>
                <asp:TextBox ID="TxtBox1" runat="server"  ReadOnly="false"  ></asp:TextBox></div>
                </ItemTemplate>
                </asp:TemplateField>
                </Columns>
    </asp:GridView>
    <asp:Button ID="Button_tot" runat="server" Style="left: 350px; position: relative; top: 30px" Text="Button_total" />
    .....
     
    </form>
    </body>
    et dans mon code behind, j'essaye de récupérer le total d'une colonne avec le bouton Button_tot:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Function total(ByVal k As Integer) As Double
            Dim s As Double
            Dim GdVR As GridViewRow
            For Each GdVR In GridView1.Rows
     
                GdVR.HorizontalAlign = HorizontalAlign.Center
                GdVR.VerticalAlign = VerticalAlign.Middle
                s = s + CDbl(GdVR.Cells(k).Text)
            Next
            Return s
            MsgBox(s)
    End Function
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Protected Sub Button_tot_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button_tot.Click
            Dim som1 As Double
            som1 = total(0)
            MsgBox(som1.ToString)
     End Sub
    aussi lors du parcours de mon gridview pour insérer les données dans ma base, j'utilise un msgbox pour afficher la requête, et là je consulte qu'il arrive même à récupérer des valeurs du page précédente mais il n'arrive pas à lire les valeurs des cellules de mon gridview !

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 360
    Points : 486
    Points
    486
    Par défaut
    comment est chargé ton gridview ?

  11. #11
    Nouveau membre du Club
    Inscrit en
    Avril 2010
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 89
    Points : 34
    Points
    34
    Par défaut
    dans form.load j'ai déclaré un datatable et je lui ajoute quelques lignes puis j&i fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    GridView1.DataSource = tabl
    GridView1.DataBind()
    j'ai défini les colonnes directement dans le gridview et je laisse la saisie pour l'utilisateur; Je sens que ce n'est pas une bonne méthode mais je suis débutant et je ne connais pas comment bien gérer le gridview ( création d'une ligne, ajout d'une ligne... sans parcourir au datatable ) !

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 360
    Points : 486
    Points
    486
    Par défaut
    peux tu poster ton page load stp ?

    a tu bien mis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if not(Page.IsPostBack)
    GridView1.DataSource = tabl
    GridView1.DataBind()
    end if

  13. #13
    Nouveau membre du Club
    Inscrit en
    Avril 2010
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 89
    Points : 34
    Points
    34
    Par défaut
    voici le form load:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Protected Sub form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles form1.Load
     
    Dim R1 As DataRow
     R1 = tbl.NewRow
     tabl.Rows.Add(R1)
    'et des autres lignes
     
    GridView1.DataSource = tabl
    GridView1.DataBind()
     
    End Sub

  14. #14
    Nouveau membre du Club
    Inscrit en
    Avril 2010
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 89
    Points : 34
    Points
    34
    Par défaut RE
    j'ai ajouté aussi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            If Not (Page.IsPostBack) Then
                GridView1.DataSource = tabl
                GridView1.DataBind()
            End If
     End Sub
    mais toujours même chose !!

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 360
    Points : 486
    Points
    486
    Par défaut
    est ce que les données entrée dans les textbox sont perdues lors du click ? si oui peut être que tu as un problème de viewstate

  16. #16
    Nouveau membre du Club
    Inscrit en
    Avril 2010
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 89
    Points : 34
    Points
    34
    Par défaut RE
    oui le contenu des textbox est perdu lors du click sur le bouton! je dois mettre enableViewState à True ? ça sert à qoui ? aussi dans quelle méthode ?
    merci beucoup pour le temps que tu as consacré pour penser avec moi

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 360
    Points : 486
    Points
    486
    Par défaut
    si tu perds le contenu soit ton viewstate est à false (au niveau de la page ou du grdview ou au niveau du textbox) ou alors ton gridview est re-binder quelque part

  18. #18
    Nouveau membre du Club
    Inscrit en
    Avril 2010
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 89
    Points : 34
    Points
    34
    Par défaut RE
    j'ai changé maintenant la propriété ENABLEVIEWSTATE à true ( pour la page, le gridview et les textbox) mais en vain !

  19. #19
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 360
    Points : 486
    Points
    486
    Par défaut
    plus trop d'idée la

    si tu veux envoies moi ton code ...

  20. #20
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 360
    Points : 486
    Points
    486
    Par défaut
    bon je pense avoir trouvé. Tu as un page_load et un form_load or dans ton form_load tu écrases re-bind ton GridView

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
                GridView1.DataSource = tbl
                GridView1.DataBind()
    du coup tu perds le contenu ... donc soit tu enlèves ton form_load car tu bind deja dans le page_load ou alors tu rajoutes une condition not Page.IsPostBack...

    Mais bon je te conseil de garder que celui du page load

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [SQL-Server] Images dans une base SQL Server
    Par matrouba dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 20/03/2008, 10h34
  2. stockage word en xml dans une base sql server 2005
    Par morados dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/10/2006, 10h47
  3. Réponses: 2
    Dernier message: 15/07/2006, 12h29
  4. [ODBC] [SQL-Server] affichage d'une image stockée dans une base sql server
    Par ahlemag dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 29/06/2006, 15h45
  5. Réponses: 5
    Dernier message: 10/05/2006, 15h47

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