- 
	
	
	
		Modification des donnés 
		Bonjour,
 jai eu cet erreur tout a coup lors de l'execution de ma procedure qui concerne la modification des données dans des textbox affichées par un datagrid, jai recuperé le keyField a travers un objet session, ca bien marché au debut mais parsuite il m'affiche:
 'ggf' : nom de colonne incorrect.
 Description : Une exception non gérée s'est produite au moment de l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.
 
 Détails de l'exception: System.Data.SqlClient.SqlException: 'ggf' : nom de colonne incorrect.Erreur source:
 
 
 Ligne 229 :        ObjCommand = New SqlClient.SqlCommand(strRequete2, Connection)
 Ligne 230 :        'on essaye d'effectuer la requete
 Ligne 231 :        ObjCommand.ExecuteNonQuery()
 Ligne 232 :        Connection.Close()
 Ligne 233 :    End Sub
 
 
 Fichier source : D:\Inetpub\wwwroot\rim_projet\Site.aspx.vb    Ligne : 231
 
 Trace de la pile:
 
 
 [SqlException: 'ggf' : nom de colonne incorrect.]
 System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
 rim_projet.Site.suppr(String resul) in D:\Inetpub\wwwroot\rim_projet\Site.aspx.vb:231
 rim_projet.Site.DataGrid1_ItemCommand(Object Sender, DataGridCommandEventArgs e) in D:\Inetpub\wwwroot\rim_projet\Site.aspx.vb:243
 System.Web.UI.WebControls.DataGrid.OnItemCommand(DataGridCommandEventArgs e)
 System.Web.UI.WebControls.DataGrid.OnBubbleEvent(Object source, EventArgs e)
 System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args)
 System.Web.UI.WebControls.DataGridItem.OnBubbleEvent(Object source, EventArgs e)
 System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args)
 System.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e)
 System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
 System.Web.UI.Page.ProcessRequestMain()
 
 Voila mon code
 onitemcommand
 Sub DataGrid1UpdateHandler(ByVal sender As Object, ByVal e As DataGridCommandEventArgs)
 '*****************************declaration*************************
 DataGrid1.EditItemIndex = e.Item.ItemIndex
 
 Session("Appsetting") = e.Item.Cells(0).Text
 Application.UnLock()
 Dim code_s As String
 code_s = Session("Appsetting")
 
 Connection = New System.Data.SqlClient.SqlConnection
 
 Dim sConnectionString As String
 sConnectionString = "Server=STANDARD;Initial Catalog=pfe_rim;uid=sa;password=allah"
 Connection.ConnectionString = sConnectionString
 Connection.Open()
 
 'recuperation de l'identifiant
 
 'on recharge le tableau
 
 Dim query As String = "select* from site"
 
 ObjCommand = New SqlClient.SqlCommand(query)
 
 'Instancier un objet Adapter
 
 objetDataAdapter = New SqlClient.SqlDataAdapter(ObjCommand)
 
 'initialiser l'objet Command
 
 ObjCommand.Connection() = Connection
 
 'Mettre dans un Objet DataTable une table du DataSet
 objetDataAdapter.Fill(objetDataset, "site")
 
 ObjetDataTable = objetDataset.Tables("site")
 RowNumber = e.Item.ItemIndex
 'Avec l'aide de la propriété Fill du DataAdapter charger le DataSet
 If RowNumber < 0 Then Exit Sub
 
 'Lors de l'ouverture de la BD, s'il n'y a aucun enregistrement
 
 If RowNumber > ObjetDataTable.Rows.Count - 1 Then Exit Sub
 
 ' ObjetTable.Rows(Numéro de lignes).Item( Nom de colonne) donne le contenu d'un champ dans une ligne donnée
 
 Me.codetxt.Text = ObjetDataTable.Rows(RowNumber).Item("code_site").ToString()
 
 Me.adrtxt.Text = ObjetDataTable.Rows(RowNumber).Item("adresse").ToString()
 Connection.Close()
 Bindgrid()
 End Sub
 
 Une fois on a cliqué sur le bouton modifier
 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 
 
 Dim ObjCommand As System.Data.SqlClient.SqlCommand
 Dim objetDataAdapter As System.Data.SqlClient.SqlDataAdapter
 Dim objetDataset As New DataSet
 Me.lbl.Text = Session("Appsetting")
 
 
 Dim code_s As String
 code_s = Session("Appsetting")
 Dim strRequete As String
 strRequete = "UPDATE site SET code_site = '" + Me.codetxt.Text + "',adresse='" + Me.adrtxt.Text + "' WHERE code_site = " + code_s
 
 ' Création de l'objet de connexion
 Connection = New System.Data.SqlClient.SqlConnection
 Dim sConnectionString As String
 sConnectionString = "Server=STANDARD;Initial Catalog=pfe_rim;uid=sa;password=allah"
 Connection.ConnectionString = sConnectionString
 Connection.Open()
 
 ObjCommand = New SqlClient.SqlCommand(strRequete)
 ObjCommand.Connection = Connection
 Try
 'on essaye d'effectuer la requete
 ObjCommand.ExecuteNonQuery()
 Catch
 'si ca ne marche pas, cela signifie que l'enregistrement existe deja, dans ce cas message d'erreur
 ShowAlert("enregistrement déjà existant, insertion refusée")
 End Try
 Connection.Close()
 Bindgrid()
 End Sub
 
 
 'suppression d'un enregistrement
 'suppression d'un enregistrement
 Sub suppr(ByVal resul As String)
 'definition de la requete
 Dim strRequete2 As String = "DELETE site WHERE code_site=" + resul
 'chaine de connexion a la base
 
 'execution de la requete
 
 Connection = New System.Data.SqlClient.SqlConnection
 Dim sConnectionString As String
 sConnectionString = "Server=STANDARD;Initial Catalog=pfe_rim;uid=sa;password=allah"
 Connection.ConnectionString = sConnectionString
 Connection.Open()
 
 'execution de la requete
 ObjCommand = New SqlClient.SqlCommand(strRequete2, Connection)
 'on essaye d'effectuer la requete
 ObjCommand.ExecuteNonQuery()
 Connection.Close()
 End Sub
 
 svp aider moi
 
 
- 
	
	
	
	
		Je te le dis franchement, j'ai rien lut mais la mise en page est tellement longue, monotone, ça donne pas envi, utilise les balises codes etc...
 
 Et, quand c'est trop long, en général on a pas envi de lire ;)
 
 Met les chances de ton côté
 
 
- 
	
	
	
	
		Avec un petit effort, je repond ^^:
 (le changement est en rouge dans le code, à la fin)
 
 
	Code: 
 strRequete = "UPDATE site SET code_site = '" + Me.codetxt.Text + "',adresse='" + Me.adrtxt.Text + "' WHERE code_site = '" + code_s + "'"
 
 
 Encore un truc, essai e préciser à quoi correspond ggf...
 Car, pour trouver dans ton code j'ai cherché dans la page avec firefox ggf et il trouvait pas...
 
 Bonne chance!
 
 
- 
	
	
	
	
		
	Code: 
 strRequete = "UPDATE site SET code_site = '" + Me.codetxt.Text + "',adresse='" + Me.adrtxt.Text + "' WHERE code_site = " + code_s
 
 Ceci me fait penser à 'Je vais aller courir un marathon dans un champ de mines avec des palmes et j'espère ne pas sauter sur une d'entre elles, car les mines c'est gentil.' :aie:
 Tu devrais penser à te renseigner sur ce que l'on appelle des SQL Injections... ;)
 
 
- 
	
	
	
	
		En effet, je ne savais pas ce que c'était!!!!
 
 Merci, tu viens de m'apprendre quelque chose, pour explication : Wikipédia
 
 Faut le savoir tout de même!