Bonjour,

Je travail avec ASP.NET / VB.NET et une base de données Access.

Je travail sur un compteur de visite par page.

Mon code avant :
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
'On récupère dans la variable AdressePage lURL de la page en cours'
        Dim AdressePage As String = Request.Url.AbsoluteUri
 
        'Ouverture de la connexion'
        access_connexion()
 
        'Instancier un objet Command'
        Obj_Command = New OleDbCommand()
 
        'Initialiser lobjet Command'
        Obj_Command.Connection() = laConnection
        Obj_Command.CommandText = "SELECT ID FROM VISITE WHERE ID=@adresse"
 
        'Initialiser le parametre @adresse de la requête'
        Obj_Command.Parameters.Add("@adresse", OleDbType.VarChar, 100).Value = AdressePage
        Obj_Reader = Obj_Command.ExecuteReader()
 
        If Obj_Reader.Read() Then
            label_nbr_v.Text = "OK"
        Else
            label_nbr_v.Text = "NON OK"
        End If
Jusque là tout fonctionne parfaitement ! (Pour les test la page existe déjà dans la base de données, donc label_nbr_v à pour valeur "OK")

Mais si j'utilise dans le if une requête UPDATE, l'erreur : "L'opération doit utiliser une requête qui peut être mise à jour" s'affiche

Mon code après :
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
'On récupère dans la variable AdressePage lURL de la page en cours'
        Dim AdressePage As String = Request.Url.AbsoluteUri
 
        'Ouverture de la connexion'
        access_connexion()
 
        'Instancier un objet Command'
        Obj_Command = New OleDbCommand()
 
        'Initialiser lobjet Command'
        Obj_Command.Connection() = laConnection
        Obj_Command.CommandText = "SELECT ID FROM VISITE WHERE ID=@adresse"
 
        'Initialiser le parametre @adresse de la requête'
        Obj_Command.Parameters.Add("@adresse", OleDbType.VarChar, 100).Value = AdressePage
        Obj_Reader = Obj_Command.ExecuteReader()
 
        If Obj_Reader.Read() Then
            label_nbr_v.Text = "OK"
            Obj_Reader.Close()
 
            'Si on la trouve on rajoute + 1'
            Obj_Command.CommandText = "UPDATE VISITE SET NBR_V = NBR_V + 1 WHERE ID=@adresse"
            Obj_Command.ExecuteNonQuery()
        Else
            label_nbr_v.Text = "NON OK"
        End If
Auriez-vous une solution à me proposer ?