Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Fonction qui peut retourner un string ou un int. ??? [ Divers / Autre ] (DiJiTooL)

jeudi 8 juin 2006 à 15:00:33 | Fonction qui peut retourner un string ou un int. ???

DiJiTooL

Bonjour,
Je voulais créer une fonction en asp.net C#  afin d’exécuter des requêtes dans une base de donnée oracle cependant le type de retour peut très bien être un String ou un Int et donc j’aurai aimais pouvoir retourné l’objet dans sont format.

J’ai trouvé plusieurs possibilités mais j’aimerais savoir s’il y en a d’autres car celles ci me semble un peu trop « bricolage » :
- Retourné un objet de type ‘Object’ puis le casté avant de le mettre dans ma variable
- Créer deux fonction de nom différents et le paramètre de retour différents ….
Il est clair qu’ici le surchargement de la fonction est impossible car uniquement le paramètre de retour doit varier.

Ici c’est pour des int et des string mais j’ai une autre fonction ou j’aimerai retourner un OracleDataReader dans un cas et un OracleDataAdapter dans l’autre afin de pouvoir mettre le résultat dans un DataSet ou simplement faire des GetString et GetInt32 avec le DataReader.

Merci d’avance pour votre aide, je suis un peu perdu

 


vendredi 9 juin 2006 à 10:47:43 | Re : Fonction qui peut retourner un string ou un int. ???

Nurgle

Membre Club Administrateur CodeS-SourceS

Salut, une autre possibilité :

Fait le renvoyer toujours un string :
- si tu dois renvoyer un string, et ben c'est bon
- si tu dois renvoyer un int, et ben tu fais un ToString() pour caster ton int en string.

Ensuite à l'arrivée, tu testes si c'est un int ou un string :

string retour = maFonctionQuiRetourneUnStringOuUnInt();

int nombre;

if (!int.TryCast(retour, nombre))
{
// c'est un string
// et nombre == null
// tu peux travailler directement avec ta variable "retour"
}
else
{
// c'est un int
// tu peux ensuite travailler avec ta variable "nombre"
}



Nurgle (Antoine)


vendredi 9 juin 2006 à 11:05:35 | Re : Fonction qui peut retourner un string ou un int. ???

poppyto

Membre Club Administrateur CodeS-SourceS
La méthode avec Cast sur Object est plus intéressante vu que tu vas aussi utiliser des objets OracleDataReader, donc pour le cast il faut d'abord appeler la fonction GetType de l'objet et après caster quoi. Enfin bon c'est pas une solution de porc quoi.......si ?

Poppyto
Cours de basse gratuits avec vidéos et ralentis 
Cours de guitare gratuits avec vidéos et ralentis 

vendredi 9 juin 2006 à 11:23:24 | Re : Fonction qui peut retourner un string ou un int. ???

Nurgle

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
Pour le string et le int :
Le problème du Cast dans un object est que ça va faire des opérations de boxing / unboxing du int (car c'est un type valeur).
Et malheureusement c'est pas très bon côté performances...
Après, il faudrait tester si ce Cast + le GetType() est plus rapide que le Int.TryCast(), mais dans tous les cas c'est de la bidouille.
Pour les OracleDataXXXX, tu peux renvoyer un object et faire un Cast, ça ira mais ce sera pas très...propre  

Dans les deux cas, le mieux serait :
- soit de séparer en deux fonctions différentes.
- soit de créer une classe ReturnInfos (par exemple), qui aurait deux propriété, une de type String, l'autre Int (et une classe OracleReturnInfos avec une de type OracleDataAdapter, l'autre de type OracleDataReader), et ensuite de renvoyer un objet de type ReturnInfos en paramètre. La classe appellante aura ensuite juste à tester laquelle des deux propriétés n'est pas nulle, et ça y est elle a sa valeur, le tout sans aucun cast !

Mais tout ce bazard vient surtout d'un problème d'architecture de ta couche d'accès aux données : normalement, quand on utilises un DataReader, on n'utilises pas un DataAdapter... !
La 3ème (et la vrai) solution serait de restructurer tes classes qui gèrent l'accès aux données.

(merci poppyto de m'avoir réveillé, je lui ait donné une solution sans même lui donner les autres, sans les explications, etc...)



Nurgle (Antoine)

vendredi 9 juin 2006 à 14:48:23 | Re : Fonction qui peut retourner un string ou un int. ???

poppyto

Membre Club Administrateur CodeS-SourceS
De toute façon, je pense pas qu'il ai besoin de performances monstrueuses donc un box / unbox et hop hein...
C'est marrant y'a vraiment pleins d'idées reçues sur .net  !
Perso j'adopterais pour 3 fonctions différentes...

Poppyto
Cours de basse gratuits avec vidéos et ralentis 
Cours de guitare gratuits avec vidéos et ralentis 

vendredi 9 juin 2006 à 21:18:52 | Re : Fonction qui peut retourner un string ou un int. ???

DiJiTooL

Bhen j'utilise simplement le DataReader pour récupérer le résultat d'une requete et le DataAdapter me permet de remplir un DataSet afin de ne pas avoir à rééffectuer la requete à chaque fois et pouvoir faire des recharche à l'interieur de celui ci. Dans mon cas c'est pour résuperer un lexique pour supporter le multi-lingue.
En ce qui concerne les performances il y a quand meme dans les 50 000 personne / mois donc il faut faire ça propre...
Merci pour vos réponse j'ai finalement opter pour 3 fonctions surchargé en lui passant mon dataadapter ou mon datareader ou rien si c'est une requete insert ou update..
Merci encore



Cette discussion est classé dans : fonction, int, string, retour, retourner


Répondre à ce message

Sujets en rapport avec ce message

recuperer une valeur retourner par la fonction sql soundex [ par hockeyman76 ] voila je fais un select soundex('nom_de_la_variable') from dual et j'aimerai stocker la reponse de ce select dans une variable. c peut etre simple pou passage d'un int d'une page à l'autre [ par perce ] Salut les garsje souhaite passer une variable de type integerJ'y arrive très bien mais c'est un string et pas moyen de la convertir.Je la passe par un Conversion string [ par jcq ] Bonjour,Savez-vous si il existe, en asp.net , une fonction qui permet de convertir du texte standard(dans un textbox multiligne) en html(remplacement target avec reponse write et fonction [ par pckb ] Répondre 09/08/2004 de pckbavec la fonction dessine bouton du site exemple asp ballerini (www.asp-php.net) comment definir l'ouverture des pages (pie Comment récupérer une valeur dans une liste pour l'envoyé vers une fonction? [ par ronaldo1 ] J'ai crée en html une liste de valeurs et un submit encapsuler dans un , mais maintenant je voudrait losque je clique sur le bouton submit, appeler un lien hypertexte et appel de fonction asp [ par ltvian ] bonjour a tous , voici mon problème , je désire a partir d'un lien hypertexte lanceer une fonction popup , cette fonction ouvre une fenêtre popup , et appelle d'une fonction javascript dans le code behind [ par amel468 ] Bonjour,J'essaye de construire un tableau qui doit posseder les propriétés extend et collapse.Ce tableau se remplit a l'aide des données d'une table o fonction de recherche dans une liste déroulante [ par tommie ] Bonjour a tous,donc j'ai une liste déroulante alimenté par une base Oracle, qui me retourne tous les noms des personnes qui se trouvent dans la base.p Appel d'une page ASP dans une fonction ou un sub VBScript [ par patrice44 ] Bonjour,Je découvre l'ASP et VBScript... Quelles sont les méthodes pour appeler une page ASP à partir de VBScript?Response.redirect peut il fonctionne fonction vbscript avec plusieurs parametres - À L'AIDE! [ par martinDi ] J'ai un léger problème. J'ai une fonction VbScript dans une page client. Cette fonction contient 3 paramètres. Par contre, j'ai une erreur à toute l


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 5,070 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.