Exlorateur de serveurs

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
-
coucou les djeunss, bon en fait j'ai encore une croute problematiquement insolvable avec la solution grisatre plus couramment appelée neurones dont je dispose...j'ai fais une classe de connexion à Oracle avec OleDB externe à celle de ma form...c'est joli tout plein...les infos de connexions sont piochées ds un fichier de ressources, et dans ma form je dois créer une connexion. (donc je fais de la form => classe Connexion => ressources ===> connexion créée (de ma form je demande de créé une connex, de la classe connex je vais dans les ressources chercher ce qu'il me faut, de la j'retourne ma connexion construite...)
le probleme c'est qu'elle n'est pas OK...j'ai pensé à un truc: dans l'explorateur de serveurs j'ai ajouté le serveur qui contient la BD...mais euh en fiat j'sais aps comment m'servir de ce chose...à vrai dire si j'fais un glisser déposer ca dépose une connexion mais dans la form, donc ceque j'ai fait ne sert a rien....enfin bref je ne comprends pas vraiment comment on se sert de ce truc là...si quelqu'un aurait l'amabilité de m'aider un ti peu....

(attention, Mx est à l'affût lol merci d'm'aider autant ;) )

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

11 réponses

Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
49
Tu n'es pas obligé d'avoir ton serveur dans l'explorateur de serveur pour que ca marche, hein ;)

Ce que tu fais en cliquant-deposant ce que tu y vois, c'est pour ecrire
automatiquement ce que la classe que tu utilises fait (en gros).

Quel est le probleme que tu rencontres ? Erreur de connexion ? Exceptions levées ?



Essaie de faire des tests avec des projets tout betes, pour voir si ta
connexion marche, avant de l'appliquer directement a ton projet ;)

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

euh ben en fait je lance la connexion et il me lèveune exception disant que la base n'est pas disponible...à la limite le probleme viendrait-il peut-être de cette ligne?

this.oraCnx.ConnectionString = "Password=" +
this.password + ";User ID=" +
this.user +


";Data Source=" +
this.nomBDD;

sachant que nomBDD contient le nom de la base et nom du serveur...si ca vient de là tu pourrais me dire comment mettre le serveur?
thanks!

"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
49
Tu as testé ce que renvoyait cette ligne (via un MessageBox par exple) ?

Password et user, ce sont tes TextBox ? si oui, n'oublies pas d'indiquer le propriété .Text

Quelle est l'excpetion levée ? Le message d'erreur et s'il te renvoit sur une ligne ?



Poste le resultat de ta connectionString si jamais

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

ah pardon, nan ce sont des variables initialisées comme suit:


// le nom de la base à laquelle se connecter est passé en paramètre



this.nomBDD = DBname;


resMng =
new ResourceManager("MenuDyna.DxSuperVisionRsrc",Assembly.GetExecutingAssembly());



switch (nomBDD)


{



case ("Base1"):
this.user = resMng.GetString("BDD1_User");



this.password = resMng.GetString("BDD1_Passwd");



break;



case ("BASE2") :
this.user = resMng.GetString("BDD2_User");



this.password = resMng.GetString("BDD2_Passwd");



break;


}

et pour le catch, c'est un truc simple, c'est juste si la connexion marche pas on dit qu'il y'a un souci car la base n'est pas accessible (donc soit infos connex invalides soit base pas bonne...)

a savoir que mes variables passwd et user sont stockées en dur dans un fichier ressource et qu'aucune saisie n'est demandée à l'utilisateur...il sélectionne sa base dans une listbox et selon le nom passé lors du clic sur Connexion, on met valeurs nécessaire et on ouvre la connexin...enfin ca c'est la théorie :D

"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
49
T'as quand meme bien vérifié que ta connectionString prenait bien la tournure que tu voulais qu'elle prenne ?



Tu fais un catch(Exception e) ? copie/colle nous le e.ToString(); (ou
autre si tu catch un autre type d'exception). Et copie/colle nous aussi
la valeur que prend ta connectionString

On peut pas reellement t'aider si on a pas plus d'infos...

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

ah ouais en fait j'fais pas du tout ca avec mon catch...et ma connexionstring elle prend les truc que j'ai marqué plus haut...
genre dans le ressource t'as BDD1_User "UserBD1" System.String
BDD1_Passwd "PasswdBDD1" System.String

et pour le dataSource bah c le nom de la BDD...ce que je me dis c'est nul part j'lui dis l'nom du serveur...
enfin etc quoi...

voila ma fonction de connexion

public
bool connect()


{



bool reessayer =
false;



do


{



try


{



// définition de la chaine de connexion à la base



this.oraCnx.ConnectionString = "Password=" +
this.password + ";User ID=" +
this.user +


";Data Source=" +
this.nomBDD;



// initialisation des nombres de lignes et de colonnes à 0



this.nbLignes = 0;



this.nbColonnes = 0;





// ouverture de la connexion


oraCnx.Open();



// s'il n'y a pas eu de problème jusque là, on retourne 'true'



return
true;


}



catch (Exception)


{



// sauvegarde de l'erreur dans l'historique


DxSprVsn.Lst_Hist_Connex.Items.Add(


DateTime.Now.Hour+"H"+


DateTime.Now.Minute+"min"+


DateTime.Now.Second+"sec "+


resMng.GetString("Lst_Hist_Connex_ErrCon")+


DxSprVsn.ComboBox_ListeBDD.SelectedItem);


DxSprVsn.Lst_Hist_Connex.Items.Add("");



string msg = resMng.GetString("Msg_Err_Connex");



string caption = resMng.GetString("Oracle_Err");


MessageBoxButtons buttons = MessageBoxButtons.RetryCancel;


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


Console.Write("Connection Error, Data Base not available");



if (MsgErr.Equals(DialogResult.Retry))


{


reessayer =
true;


}



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


{


reessayer =
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);



return
false;


}

"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
49
dans ton catch, rajoute juste la variable e

et fais un MessageBox.Show(e.ToString());


catch
(Exception e)

{


...

}



Ce sera ptet plus simple pour toi de localiser la raison de l'erreur ensuite.

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

ouf voici l'erreur! désolé il a fallu que j'me tape tout à taper lol donc euh bah moi perso...ormis la derniere ligne j'comprends rien

System.Data.OracleClient.OracleException: ORA-12560: TNS : erreur d'adaptateur de protocole


at System.Data.OracleClient.DBObjectPool.GetObject(Boolean& isInTransaction)
at System.Data.OracleClient.OracleConnectionPoolManager.GetPooledConnection(String encrypedConnectionString, OracleConnectionString options, Boolean& IsInTransaction)
at System.Data.OracleClient.OracleConnection.OpenInternal(OracleConnectionString parsedConnectionString, Object transact)
at System.Data.OracleClient.OracleConnection.Open()
at MenuDyna.ConnexOra.connect() in c:\...\ora_connexion.cs:line 185

"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

cette derniere ligne contient seulement

oraCnx.Open();

"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
49
Bon, et bien maintenant on a l'erreur, "Erreur d'adaptateur de protocole"

N'ayant jamais bossé sous oracle, je sais pas comment resoudre.

Mais je suis sur qu'en demandant a google de te renseigner sur ca "C# ORA-12560: TNS" tu vas pouvoir trouver des indices



Demande aussi a la personne qui s'occupe de la base de données, ce que ca peut etre comme souci.


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

bon...bah ok...lol j'trove pas vraiment en fait...j'vais demander à mes responsables de stage...apparemment il faudrait aller fouiner dans le fichier tnsnames.ora pour le Oracle_SID ou j e ne sais quoi...mais bon...merci en tous cas :)

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