Bonjour,
Je rencontre un pb : j'ai le message 'Erreur de syntaxe dans l'instruction UPDATE' lorsque je mets ma base à jour (le but étant de la modifier).
Voici mon code :
Sub gridRecherche_UpdateCommand(ByVal source As Object, ByVal e As DataGridCommandEventArgs) Handles gridRecherche.UpdateCommand Dim intRefAudience As Integer Dim cTextBox As TextBox Dim cmdUpdate As OleDb.OleDbCommand cTextBox = CType(e.Item.Cells(4).Controls(0), TextBox) sSQL = "UPDATE tblAudience SET chpAffaire='" & cTextBox.Text & "', " cTextBox = CType(e.Item.Cells(5).Controls(0), TextBox) sSQL &= "chpContre='" & cTextBox.Text & "', " cTextBox = CType(e.Item.Cells(6).Controls(0), TextBox) sSQL &= "chpDate='" & cTextBox.Text & "', " sSQL &= " WHERE RefAudience='" & gridRecherche.DataKeys(e.Item.ItemIndex) & "'"
Dim connexion As New OleDb.OleDbConnection("Provider=Microsoft.Jet.oledb.4.0;" & _ "Data Source=" & Request.PhysicalApplicationPath & "db\Audiences.mdb") connexion.Open() cmdUpdate = New OleDb.OleDbCommand(sSQL, connexion) cmdUpdate.ExecuteNonQuery() connexion.Close() gridRecherche.EditItemIndex = -1 ChargerData() End Sub
|
Le message apparaît au moment de l'exécution de ExecuteNonQuery.
Voici la 'trace de la pile' :
[OleDbException (0x80040e14): Erreur de syntaxe dans l'instruction UPDATE.] System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(Int32 hr) System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) System.Data.OleDb.OleDbCommand.ExecuteNonQuery() audiences_social.WebForm4.gridRecherche_UpdateCommand(Object source, DataGridCommandEventArgs e) in c:\inetpub\wwwroot\audiences_social\Recherche.aspx.vb:443 System.Web.UI.WebControls.DataGrid.OnUpdateCommand(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.Button.OnCommand(CommandEventArgs e) System.Web.UI.WebControls.Button.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()
|
Je suis sous win2000, ma base Access est en local, en saisie en ajoutant des lignes, tout fonctionne parfaitement, il n'y a qu'en modification.
Merci d'avance !