Problème connexion base de données ACCESS

adomarle Messages postés 41 Date d'inscription jeudi 18 septembre 2003 Statut Membre Dernière intervention 15 juin 2012 - 12 avril 2005 à 17:02
cs_bibicool Messages postés 81 Date d'inscription lundi 6 septembre 2004 Statut Membre Dernière intervention 7 février 2007 - 29 avril 2005 à 13:09
Bonjour,

Je cherche à me connecter à ma base de données ACCESS, de cette manière :

protected
void Session_Start(Object sender, EventArgs e)


{



OleDbConnection myConnection = new OleDbConnection();



myConnection.ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0;Data source=" + Server.MapPath("RevuePresse.mdb") + ";Connect Timeout=30";


Session["myConnection"] = myConnection;
}

Et je rencontre l'erreur suivante :
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: Une opération OLE-DB en plusieurs étapes a généré des erreurs. Vérifiez chaque valeur d'état OLE-DB disponible. Aucun travail n'a été effectué.

Erreur source:


Ligne 33 : 			//myConnection.ConnectionString  = "provider=Microsoft.Jet.OLEDB.4.0;Data source=" + Server.MapPath("RevuePresse.mdb") + ";Connect Timeout=30";
Ligne 34 : 			myConnection.ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0;Data source=C:\\RevuePresse.mdb;Connect Timeout=30;Jet OLEDB:System Database=system.mdw";
Ligne 35 : 			myConnection.Open();
Ligne 36 : 			Session["myConnection"] = myConnection;
Ligne 37 : 		}



Fichier source : c:\inetpub\wwwroot\revuepresse\global.asax.cs Ligne : 35

Trace de la pile:


[OleDbException (0x80040e21): Une opération OLE-DB en plusieurs étapes a généré des erreurs. Vérifiez chaque valeur d'état OLE-DB disponible. Aucun travail n'a été effectué.]
System.Data.OleDb.OleDbConnection.ProcessResults(Int32 hr)
System.Data.OleDb.OleDbConnection.CreateProviderError(Int32 hr)
System.Data.OleDb.OleDbConnection.CreateProvider(OleDbConnectionString constr)
System.Data.OleDb.OleDbConnection.Open()
RevuePresse.Global.Session_Start(Object sender, EventArgs e) in c:\inetpub\wwwroot\revuepresse\global.asax.cs:35
System.Web.SessionState.SessionStateModule.RaiseOnStart(EventArgs e)
System.Web.SessionState.SessionStateModule.OnStart(EventArgs e)
System.Web.SessionState.SessionStateModule.CompleteAcquireState()
System.Web.SessionState.SessionStateModule.BeginAcquireState(Object source, EventArgs e, AsyncCallback cb, Object extraData)
System.Web.AsyncEventExecutionStep.System.Web.HttpApplication+IExecutionStep.Execute()
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)



Merci beaucoup de votre aide,
Clem

6 réponses

titeoe Messages postés 433 Date d'inscription samedi 26 avril 2003 Statut Membre Dernière intervention 4 décembre 2009 1
12 avril 2005 à 17:57
As tu vérifié que ton fichier est bien accessible par le chemin que tu lui envoie ?
le "C:\\RevuePresse" me semble douteux .... (doubles anti-slash)

sinon , je te conseille de catcher l'exception :

try
{
myConnection.Open();
}
catch ( Exeption ex )
{
Response.Write (ex.Message) ;
}

Ainsi tu saura exactement de quoi il retourne.

Vérifie aussi que ton fichier access n'a pas de verrou ( fichier .LDB) posé qui empecherai son ouverture.
0
adomarle Messages postés 41 Date d'inscription jeudi 18 septembre 2003 Statut Membre Dernière intervention 15 juin 2012
13 avril 2005 à 09:04
Lorsque que j'affiche le message de l'excpetion, j'ai le message suivant :

Le moteur de la base de données Microsoft Jet ne peut pas ouvrir le fichier 'C:\revuepresse.mdb'. Il est déjà ouvert en mode exclusif par un autre utilisateur, ou vous devez avoir l'autorisation de visualiser ses données.

Mais je ne comprends pas car c'est moi qui est créé la base de données et je n'ai pas mis de sécurité particulière dessus.

Clem
0
adomarle Messages postés 41 Date d'inscription jeudi 18 septembre 2003 Statut Membre Dernière intervention 15 juin 2012
13 avril 2005 à 09:57
J'ai trouvé le problème : il ne faut pas mettre "Connect Timeout=30" dans la chaîne de connexion.


Par contre, je ne sais pas pourquoi mais ça marche.


Merci de votre aide,


Clem
0
cs_bibicool Messages postés 81 Date d'inscription lundi 6 septembre 2004 Statut Membre Dernière intervention 7 février 2007 1
18 avril 2005 à 17:17
Juste pour ton info, le message que tu avait, ... déja ouvert en mode exclusif par un autre...

Peut venir du fait que tu avais ta base de donnée access ouverte en mode design...

Voilà,

Bibicool
0

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

Posez votre question
bartoys Messages postés 1 Date d'inscription jeudi 28 avril 2005 Statut Membre Dernière intervention 28 avril 2005
28 avril 2005 à 15:44
Bonjour je rencontre le meme probleme mais je ne trouve pas où se trouve le mode design.

J'ai bien accées a ma base mais les autres utilisateurs on se message:Le moteur de la base de donnés Microsoft Jet ne peut pas ouvrir le fichier 'H:\seb P\MM Roto.mdb'.Il est deja ouvert en mode exclusif par un autre utilisateur,ou vous devez avoir l'autorisation de visualiser ses données.

Merci de votre aides.
0
cs_bibicool Messages postés 81 Date d'inscription lundi 6 septembre 2004 Statut Membre Dernière intervention 7 février 2007 1
29 avril 2005 à 13:09
Le mode design est le mode dans lequel tu peux créer ta base de donnée, lui ajouter un champs,
Donc si tu as ouvert ta table où quelqu'un d'autres dans ce mode, tu as ce genre de message, maintenant ca peut pê venir d'autre chose... c'est juste que j'ai déjà eu ce problème

Bibicool
0
Rejoignez-nous