begin process at 2012 02 14 04:42:42
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP.NET

 > 

Divers

 > 

Autre

 > 

Fonction qui peut retourner un string ou un int. ???


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Fonction qui peut retourner un string ou un int. ???

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ée 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 Shared Ou New ? [ par jmtoulon ] Bonjour, voici ci-dessous un extrait d'un code que j'ai créer afin de vous exposer mon probleme.Depuis une page aspx, quand la page se charge, la fonc Retourner plusieures variables webservice [ par bobertin89 ] Bonjour à tous, débutant en .net, je souhaite créer un webservices retournant plusieures variables. Je suis dans visual studio (en vb). Dans l'exempl 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 Fonction retour booleen + message utilisateur [ par conan76 ] Bonjour, Une question bête (je pense). Un utilisateur clic sur un bouton créer ce qui déclenche une fonction de contrôle qui me retourne un boolée page de retour en php [ par yaosteph ] Je cherche un script php me permettant de retourner à la page précédente étant sur une page donnée. Appel de fonction/procédure dynamiquement [ par Niconapo ] Bonjour à tous les lecteurs, J'ai une question qui me taraude l'esprit depuis quelque temps, j'espère que quelqu'un pourra me répondre. Tout d'abord j Gestion d'écran avec langage c [ par hana74 ] Bonjours a tous: le prof nous demandé de faire une gestion d'écran par les fonctions (AX BX CX DX.... et AH AL BH BL.....)des paramétres de type REGS fichier en langage assembleur [ par fstmanar ] si quelq'un peut me corriger ces instructions pour que j 'aboutit a l'overture d'un fichier en mode lecture et ecriture en langage assembleur mov ah,


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,186 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales