Bonjour, je suis en train de faire une base de données pour un Intranet et je n'arrive pas à la mettre à jour.
J'ai créé une datagrid avec une liste de produits contenant référence, nom, prix h.t. , version, remarques.
Pour mettre cette liste à jour, j'ai ajouté une colonne avec un bouton modifier et annuler la modif. Les boutons font bien appel à ma fonction de mise à jour et d'annulation de la modif.
Mais là où je coince, c'est la mise à jour en elle-même.

Voici la fonction qui ce situe dans la classe CatalogueProduits :
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
    Public Sub ProduitsListeUpdate(ByVal produitID As Integer, ByVal PrixHT As Single, ByVal Remarques As String)
        Dim Cnx As OleDb.OleDbConnection
        Dim SqlCmd As String
        Try
            Cnx = New OleDb.OleDbConnection(ConnString)
            SqlCmd = "UPDATE CatalogueProduits SET prixht=@prixht, remarques=@remarques WHERE produitID=@produitID"
            Dim Cmd As New OleDb.OleDbCommand(SqlCmd, Cnx)
            Cmd.Parameters.Add("@prixht", OleDb.OleDbType.Single).Value = PrixHT
            Cmd.Parameters.Add("@remarques", OleDb.OleDbType.BSTR).Value = Remarques
            Cmd.Parameters.Add("@produitID", OleDb.OleDbType.Integer).Value = produitID
 
            Cnx.Open()
            Cmd.ExecuteNonQuery()
            Cmd.Dispose()
            Cnx.Close()
        Catch ex As Exception
            Debug.Write(ex.Message)
            Debug.Write(ex.StackTrace)
        End Try
    End Sub
Et voici la fonction pour le bouton update :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    Sub Grid_Update(ByVal Sender As Object, ByVal e As DataGridCommandEventArgs)
        Dim produitID As Integer
        Dim PrixHT As Single
        Dim Remarques As String
        Dim ObjDa As New AccesDonnees.CatalogueProduits
        produitID = Me.dgGrille.DataKeys(e.Item.ItemIndex)
        PrixHT = Integer.Parse(CType(e.Item.FindControl("txtPrixHT"), TextBox).Text)
        Remarques = CType(e.Item.FindControl("txtRemarques"), TextBox).Text
 
        ObjDa.ProduitsListeUpdate(produitID, PrixHT, Remarques)
 
        Me.dgGrille.EditItemIndex = -1
        Me.dgGrille.DataBind()
    End Sub
Quelqu'un pourrait-il m'expliquer ce qui ne fonctionne pas ? Je n'ai aucun message d'erreur quand je veux faire une mise à jour mais les modif ne sont pas prises en compte

J'ai en plus un autre problème : lorsque je quitte mon appli asp.net, ma base Access est en lecteur seule (elle ne l'était pas avant)

Une idée please, je suis perdu

Merci

PS : Je suis totalement débutant en .NET et je travaille sous VS.NET