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

Résolu
sphaxslayer Messages postés 216 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 17 septembre 2008 - 20 avril 2005 à 10:54
sphaxslayer Messages postés 216 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 17 septembre 2008 - 21 avril 2005 à 11:05
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

MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
20 avril 2005 à 11:55
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
3
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
20 avril 2005 à 16:39
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..."
3
sphaxslayer Messages postés 216 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 17 septembre 2008
20 avril 2005 à 11:33
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é..."
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
20 avril 2005 à 11:43
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
0

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

Posez votre question
sphaxslayer Messages postés 216 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 17 septembre 2008
20 avril 2005 à 11:48
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é..."
0
sphaxslayer Messages postés 216 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 17 septembre 2008
20 avril 2005 à 11:58
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é..."
0
sphaxslayer Messages postés 216 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 17 septembre 2008
21 avril 2005 à 11:05
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é..."
0