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 :

SVP pourquoi ce code ne fonctionne pas -editer datagrid-


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 23
    Par défaut SVP pourquoi ce code ne fonctionne pas -editer datagrid-
    SVP pourquoi ce code ne fonctionne pas -editer datagrid-?
    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
    42
    43
    44
    Protected Sub DataGrid1_CancelCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.CancelCommand
            Me.DataGrid1.EditItemIndex = -1
            da.Fill(ds, "emp")
            Me.DataGrid1.DataBind()
        End Sub
    
        Protected Sub DataGrid1_EditCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.EditCommand
            Me.DataGrid1.EditItemIndex = e.Item.ItemIndex
            da.Fill(ds, "emp")
            Me.DataGrid1.DataBind()
        End Sub
    
    
        Protected Sub DataGrid1_UpdateCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.UpdateCommand
            Dim lastname As String = CType(e.Item.Cells(2).Controls(0), TextBox).Text
            Dim id As String = Me.DataGrid1.DataKeys(e.Item.ItemIndex)
            MsgBox(lastname)
            con.Open()
    
            Dim cmd As New System.Data.SqlClient.SqlCommand("update employees set lastname='" & lastname & "' where employeeid='" & id & "'")
            cmd.Connection = con
            cmd.ExecuteNonQuery()
            con.Close()
            Me.DataGrid1.EditItemIndex = -1
    
    
            da.Fill(ds, "emp")
            Me.DataGrid1.DataBind()
    
    
    
        End Sub
        Dim con As New System.Data.SqlClient.SqlConnection("Data Source=UNICORNI-83C0A9;Initial Catalog=Northwind;Integrated Security=True")
        Dim da As New System.Data.SqlClient.SqlDataAdapter()
        Dim ds As New System.Data.DataSet
        Dim com As New System.Data.SqlClient.SqlCommand
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            com.CommandText = "select employeeid,lastname,firstname from employees"
            com.Connection = con
            da.SelectCommand = com
            da.Fill(ds, "emp")
            Me.DataGrid1.DataSource = ds
            Me.DataGrid1.DataBind()
        End Sub
    lastname prend la valeur de la cellule et pas texte qui je saisi.

  2. #2
    Membre chevronné Avatar de predalpha
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    392
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 392
    Par défaut
    Salut mat,

    l'édition ne pourra pas marcher puisqu'à chaque chargement de page, tu recharges ton datagrid avec ses valeurs initiales (celles de la BDD).

    Si tu veux éviter ce problème, je te conseille le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            com.CommandText = "select employeeid,lastname,firstname from employees"
            com.Connection = con
            da.SelectCommand = com
     if page.ispostback = false then
            da.Fill(ds, "emp")
            Me.DataGrid1.DataSource = ds
            Me.DataGrid1.DataBind()
    end if
        End Sub

  3. #3
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 23
    Par défaut
    Merci,
    mais quand je clique sur modifier le datagrid se cache,je sais pas comment faire, est ce qu'il y un autre problème? ou..

  4. #4
    Membre chevronné Avatar de predalpha
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    392
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 392
    Par défaut
    Essaies plutôt ce code alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            com.CommandText = "select employeeid,lastname,firstname from employees"
            com.Connection = con
            da.SelectCommand = com
    Me.DataGrid1.DataSource = ds
    
     if page.ispostback = false then
            da.Fill(ds, "emp")
                    Me.DataGrid1.DataBind()
    end if
        End Sub

  5. #5
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 23
    Par défaut
    Il me donne un messge:
    Le IListSource ne contient pas de source de données

  6. #6
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 23
    Par défaut
    GRAN MERCI
    il fonction avec le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     Protected Sub DataGrid1_EditCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.EditCommand
           Me.DataGrid1.DataSource = ds     'ceci le joker
            Me.DataGrid1.EditItemIndex = e.Item.ItemIndex
    
            da.Fill(ds, "emp")
            Me.DataGrid1.DataBind()
        End Sub
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
       Protected Sub DataGrid1_CancelCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.CancelCommand
            Me.DataGrid1.DataSource = ds
            Me.DataGrid1.EditItemIndex = -1
            da.Fill(ds, "emp")
            Me.DataGrid1.DataBind()
        End Sub
     
        Protected Sub DataGrid1_EditCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.EditCommand
            Me.DataGrid1.DataSource = ds
            Me.DataGrid1.EditItemIndex = e.Item.ItemIndex
     
            da.Fill(ds, "emp")
            Me.DataGrid1.DataBind()
        End Sub
     
     
        Protected Sub DataGrid1_UpdateCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.UpdateCommand
            Dim lastname As String = CType(e.Item.Cells(3).Controls(0), TextBox).Text
            Dim id As String = Me.DataGrid1.DataKeys(e.Item.ItemIndex)
            MsgBox(lastname)
            con.Open()
     
            Dim cmd As New System.Data.SqlClient.SqlCommand("update employees set lastname='" & lastname & "' where employeeid='" & id & "'")
            cmd.Connection = con
            cmd.ExecuteNonQuery()
            con.Close()
            Me.DataGrid1.DataSource = ds
            Me.DataGrid1.EditItemIndex = -1
     
            da.Fill(ds, "emp")
            Me.DataGrid1.DataBind()
     
     
     
        End Sub
        Dim con As New System.Data.SqlClient.SqlConnection("Data Source=UNICORNI-83C0A9;Initial Catalog=Northwind;Integrated Security=True")
        Dim da As New System.Data.SqlClient.SqlDataAdapter()
        Dim ds As New System.Data.DataSet
        Dim com As New System.Data.SqlClient.SqlCommand
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            com.CommandText = "select employeeid,lastname,firstname from employees"
            com.Connection = con
            da.SelectCommand = com
     
     
            If Page.IsPostBack = False Then
     
                da.Fill(ds, "emp")
     
                Me.DataGrid1.DataSource = ds
                Me.DataGrid1.DataBind()
            End If
        End Sub
    merci encore
    predalpha

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 28/03/2011, 16h54
  2. Pourquoi mon code ne fonctionne pas sur Linux
    Par Amaury_35 dans le forum Langage
    Réponses: 2
    Dernier message: 24/08/2009, 09h58
  3. Mon code ne fonctionne pas mais pourquoi ?
    Par veriecherie dans le forum ASP
    Réponses: 3
    Dernier message: 01/08/2008, 12h19
  4. pourquoi mon code ne fonctionne pas
    Par jmlb35 dans le forum VBA Access
    Réponses: 2
    Dernier message: 30/06/2008, 19h02
  5. [BCB5][FB1.5]Pourquoi cette commande ne fonctionne pas ?
    Par Sitting Bull dans le forum Débuter
    Réponses: 1
    Dernier message: 17/11/2004, 16h27

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