Je n'arrive pas a comprendre l'erreur???

cs_silvere Messages postés 1 Date d'inscription mardi 3 juin 2003 Statut Membre Dernière intervention 10 juin 2003 - 10 juin 2003 à 10:41
yessef Messages postés 7 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 28 avril 2008 - 28 avril 2008 à 12:31
Je suis en train d'ecrire une application ASP.NET simple permettant de visualiser des employés stockés dans une base de données ACCESS.
J'ai donc une page qui affiche effectivement la liste des employés dans une DataGrid. Et à cette Datagrid est associé un bouton "Ajouter", "Editer", "Supprimer".
Lorsque j'essaie l'un de ces 3 boutons, une erreur survient et je n'arrive pas à la debugger!!
Voila ce qui m'est affiché:
Détails de l'exception: System.Data.OleDb.OleDbException: L'opération doit utiliser une requête qui peut être mise à jour.

Erreur source:

Ligne 77 : DBUpdate.Connection = DBConn
Ligne 78 : DBUpdate.Connection.Open
Ligne 79 : DBUpdate.ExecuteNonQuery()
Ligne 80 : Response.Redirect("./index.aspx")
Ligne 81 : End Sub

Il y'a une erreur sur la ligne 79 et je suis completement bloqué car je ne peux donc effectuer aucune opération de mise à jour sur les données contenues dans ma base ACCESS.
Merci de me répondre rapidement!

5 réponses

cs_Minad Messages postés 2 Date d'inscription lundi 14 avril 2003 Statut Membre Dernière intervention 23 juin 2003
23 juin 2003 à 16:44
Salut!

A priori c'est ton instruction SQL qui pose probleme, verifie la surtout niveau syntaxe
Sinon sois plus précis, donnes moi ton code SQL par ex.

Mina
0
cs_pvjknc Messages postés 3 Date d'inscription vendredi 13 juin 2003 Statut Membre Dernière intervention 7 octobre 2003
7 oct. 2003 à 23:09
Je ne pense pas que ce soit une erreur SQL car j'ai moi même le même pb je n'arrive pas à écrire dans une base access. J'ai utilisé plusieur programme différent et lorsque j'essai de faire une mise à jours d'un enregistrement ou ajouter un enr, je me retrouve toujours avec cette satanée erreur (voir ci dessous).
j'ai un peu joué avec les sécurités au niveau de IIS (je fais les essais en local).
Si qq à une proposition je suis preneur.

L'opération doit utiliser une requête qui peut être mise à jour.
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.OleDb.OleDbException: L'opération doit utiliser une requête qui peut être mise à jour.

Erreur source:

Ligne 101 : OleDbCommand cmd =
Ligne 102 : new OleDbCommand(sql, conn);
Ligne 103 : cmd.ExecuteNonQuery();
Ligne 104 : }
Ligne 105 :// catch (Exception e)
0
mcviper Messages postés 6 Date d'inscription vendredi 17 septembre 2004 Statut Membre Dernière intervention 30 août 2006
23 mai 2005 à 04:08
j'ai le meme probleme, je fais un update a partir d'un datagrid

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.OleDb.OleDbException: L'opération doit utiliser une requête qui peut être mise à jour.

Source Error:


Line 103:
Line 104:        Cmd1.Connection.Open()

Line 105:        Cmd1.ExecuteNonQuery()
Line 106:        Cmd1.Connection.Close()
Line 107:

0
Cybiot Messages postés 10 Date d'inscription mardi 19 novembre 2002 Statut Membre Dernière intervention 25 avril 2006
25 avril 2006 à 12:04
Si on accède sans problème à la base en lecture, mais que toute les requêtes modifiant la base (INSERT, UPDATE, DELETE) retourne le message suivant :


« System.Data.OleDb.OleDbException: L'opération doit utiliser une requête qui peut être mise à jour. »


<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />


Le problème ne se situe pas au niveau du code ASP.NET, mais vient d’un problème de droits d’accès au niveau du serveur.





En effet, l’installation du FrameWorks 2, permettant à IIS d’interpréter les codes .NET, à pour effet de créer automatiquement un utilisateur virtuel nommé « ASPNET ». Ensuite, pour que le code ASP.NET puisse accéder à une base, il suffit de donner des droits à cet « Utilisateur » sur le fichier Base (Attention : il s’agit ici des droits « Windows » et pas des droits « IIS » ).

Donc :

Faire ensuite un clic droit sur la base puis sélectionnez « Propriétés », puis l’onglet «Sécurité »
Cliquez sur le bouton « Ajouter »


Choisissez l’utilisateur « ASPNET », cliquez sur le bouton « Ajouter » puis « OK »


Une fois revenu sur l’écran précédent, choisissez l’utilisateur « ASPNET »,
puis accordez-lui toutes les autorisations d’accès en cochant les cases de la colonne « Autoriser ».





Validez par « OK ».






A présent le code ASP peut modifier le contenu de la base.

Cybiot
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yessef Messages postés 7 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 28 avril 2008
28 avril 2008 à 12:31
System.Data.OleDb.OleDbException: L'opération doit utiliser une requête qui peut être mise à jour.
0
Rejoignez-nous