ODBC, OleDb, ... (°_°)agheu??? + Pb connexion BD Oracle...

[Résolu]
Signaler
Messages postés
216
Date d'inscription
mardi 5 avril 2005
Statut
Membre
Dernière intervention
17 septembre 2008
-
Messages postés
216
Date d'inscription
mardi 5 avril 2005
Statut
Membre
Dernière intervention
17 septembre 2008
-
Bonjour tout le monde...
au risque de paraître stupide, je voudrais vous poser la question suivante:
mais que sont ODBC et OleDb ... ? Ormis que ce sont des...'choses' pour les bases de données (des drivers...? des classes...?aucun idée lol) bref...je n'ai pas idée de ce que c'es vraiment...et le problème que j'ai c'est que j'aimerai ouvrir une connexion à ma base de données Oracle...tiens, O, Oracle...serait-ce une piste ?? sachant qu'il existe aussi SqlType et SqlClient? lol bon treve de bêtise, y'en a bien assez avec ce post...

En fait ce que je cherche concrètement à faire, c'est sélectionner une base dans une ComboBox, cliquer sur un un Bouton de Connexion et là, vérifier si le chemin de la base existe, si oui pas de problème...sinon, j'affiche un MessageBox Retry/Cancel...Et c'est là que j'ai du mal, je voudrais que tant qu'on clique sur Retry, on boucle sur la connexion et si on annule que ca ne fasse rien...Sachant que je dois attraper les exceptions genre IOFileNoteFoundException (je crois, si le fichier de la base n'existe pas ...) et de meme pour les erreurs connexions...voilà le bout de code qui se chargerait de faire ce que je souhaite...



// Lorsque l'on clique sur 'Connexion':



bool reessayer=
false;



do


{



try


{


FileStream BDD =
new FileStream(@"C:\BDDs"+ComboBox_ListeBDD.SelectedText,


FileMode.Open,


FileAccess.ReadWrite);

// message dans la console pour indiquer que c OK

}





// catch sur l'existence du fichier



catch (System.IO.FileNotFoundException)


{



string msg = "Erreur: la Base "+ComboBox_ListeBDD.SelectedItem+" n'est pas accesible ou n'existe pas.";



string caption = "Erreur connexion à la Base de Données";


MessageBoxButtons buttons = MessageBoxButtons.RetryCancel;


DialogResult MsgErr = MessageBox.Show(
this, msg, caption, buttons, MessageBoxIcon.Error);


Console.Write("Une erreur s'est produite lors de la connexion.");



if (DialogResult.ToString()=="Retry")


{


reessayer=
true;


}
else // else je ne sais pas quoi à vrai dire...

}


}
while(reessayer==
true);

Voilà, si quelqu'un peut m'aider...merci beaucoup...

PS: désolé, j'ai cru lire qu'il existait un bouton spécial pour insérer du code, mais je dois être très bête parce que j'vois pas ce que c'est...

"Un seul Être vous manque, et tout est dépeuplé..."

7 réponses

Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
54
Ah bah j'avais pas vu ta réponse ^^

Tant mieux si tu t'en es sorti



Je pourrais pas t'expliquer grand chose sur les providers, si ce n'est
que ce sont eux qui te fournissent l'acces aux bases de données.

Tiens, voila un cours complet sur ado.net, il pourra surement te servir



http://dotnet.developpez.com/cours/ADO.NET/



Bonne continuation

Mx
Messages postés
1182
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
14
pas la peine de verifier la presence ou non d'un fichier pour une BDD

lorsuqe tu creer une connexion Oldeb (qui est au passage un objet de la classe ado) tu peux lancer une connection ...si tu a un plantage, soit ta chaine de connection est mauvaise soit tu na pas les droits sur la bdd, soit la bdd n'existe pas...

http://www.connectionstrings.com/index.asp

un petit lien pour voir comment générer une chaine de connexion valide...

si tu veux des exemple pour utiliser des BDD regarde mes sources...
c'est du sql serveur, mais il suffit de remplacer

sqlConnection par OledbConnection
SqlCommand par OledbCommand
SqlBidule par OledbBidule
SqlMachin par OledbMachin

Etc...


Arthenius
http://blogs.developpeur.org/Arthenius/

"Ce qui ne me tue pas, me rend plus fort..."
Messages postés
216
Date d'inscription
mardi 5 avril 2005
Statut
Membre
Dernière intervention
17 septembre 2008

Bon ben en fait j'ai résolu mon problème...voilà le code si ca peut aider certains...j'ai modifier 2 3 trucs, notamment grâce à des booléens et des tests dessus...De plus, le if en violet ne doit pas être obligatoire je pense...enfin il faudrait voir, j'ai aps testé, je viens de le voir en le mettant ici :-)

M'enfin je ne sais toujours pas vraiment bien ce que sont ces fameux ODBC, OleDb etc...mercisi vous me répondez!

// Lorsque l'on clique sur 'Connexion':



bool reessayer=
false;



bool connexReussie=
false;



do


{



try


{


FileStream BDD =
new FileStream(@"C:\BDDs"+ComboBox_ListeBDD.SelectedText,


FileMode.Open,


FileAccess.ReadWrite);


// message dans la console pour indiquer que c OK

}





// catch sur l'existence du fichier



catch (System.IO.FileNotFoundException)


{



string msg = "Erreur: la Base "+ComboBox_ListeBDD.SelectedItem+" n'est pas accesible ou n'existe pas.";



string caption = "Erreur connexion à la Base de Données";


MessageBoxButtons buttons = MessageBoxButtons.RetryCancel;


DialogResult MsgErr = MessageBox.Show(
this, msg, caption, buttons, MessageBoxIcon.Error);


Console.Write("Une erreur s'est produite lors de la connexion. Erreur : ");




if (MsgErr.Equals(DialogResult.Retry))


{


reessayer=
true;


connexReussie=
false;


}



else
if (MsgErr.Equals(DialogResult.Cancel))


{


reessayer=
false;


connexReussie=
false;



// à ce niveau, on sort de la procédure car la connexion n'est pas



// effectuée et on ne demande plus de réessayer de se connecter


}

}


}
while(reessayer==
true);





// test de sortie de boucle, c-a-d si la connexion a réussi



if (connexReussie)


{

. . . . . . . .
}

"Un seul Être vous manque, et tout est dépeuplé..."
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
54
T'inquiete pas, le bouton pour inserer du code n'existe plus depuis
quelques moi, maintenant on a cette RichTextBox qui n'en a plus besoin



Ce que je comprends pas, c'est pourquoi tu dois aller lire un fichier. Il correspond a quoi ce fichier ? Il y a quoi dedans ?



Pour te connecter a une bdd oracle, sinon, tu peux passer par un provider oleDB ou odbc.



Enfin bref, essaie de donner un peu plus d'infos, c'est pas tres clair
pour moi tout ca. Et ensuite je vais essayer de voir avec toi ce qu'on
peut faire.

Mx
Messages postés
216
Date d'inscription
mardi 5 avril 2005
Statut
Membre
Dernière intervention
17 septembre 2008

bah en fait, la base de données j'ai pas encore accès sur le réseau, vu que je devais d'abord m'occuper de l'interface graphique...mais je me suis dit que pour vérifier si la base de données existe bien, je pouvais vérifier si le chemin d'accès existe bien...une base de données c'est un fichier au final...donc voilà, ensuite je pense que je pourrais directement tester la connexion en elle-même, enfin le retour qu'elle enverra...

là je pense que ça marche car j'ai fait des tests en remplaçant le chemin bidon que j'ai mis par un vrai avec des vrais fichiers (txt, xml et doc)...

merci pour ton aide en tous cas...si tu pouvais m'éclairer un peu sur ces providers...j'suis pommé dans ce truc :s

"Un seul Être vous manque, et tout est dépeuplé..."
Messages postés
216
Date d'inscription
mardi 5 avril 2005
Statut
Membre
Dernière intervention
17 septembre 2008

lol pas d'mal, merci en tous les cas...ah ouais donc ce ADO qu'on voit partout c'est ça qui s'occupe des connexions...moi j'pensais que c'était encore un autre truc comme ODBC etc........
bon bah merci en tous cas!
a pluche ;-)

"Un seul Être vous manque, et tout est dépeuplé..."
Messages postés
216
Date d'inscription
mardi 5 avril 2005
Statut
Membre
Dernière intervention
17 septembre 2008

Salut Arthenius
Merci beaucoup pour tes précisions, ainsi que pour le lien!
Pas de problème pour tes sources, dès que j'ai un problème je viens te visiter lol, c'est sympa merci les gars!

Au passage, je trouve vraiment ce(s) site(s) géniaux...c'est convivial, rapide et le plus souvent précis! bravo Nix et ses collaborateurs !

"Un seul Être vous manque, et tout est dépeuplé..."