begin process at 2010 09 06 03:41:55
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Base de données

 > 

Oracle

 > 

Récupération donnée Oracle


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

Récupération donnée Oracle

lundi 4 février 2008 à 09:59:05 | Récupération donnée Oracle

jonathanC

Bonjour,

j'utilise cette classe :
http://www.csharpfr.com/code.aspx?ID=25671
dans une webpart C#, le déploiement se fait bien apres quelque bidouillage. mais j'ai 2 questions :
où est-ce que l'on indique la requete SQL a effectué?(perso j'ai rajouter une ligne : sQuery =" select ....";

et deuxième question :
comment est-ce que l'on manipule les donnée de l'objet qui contient le résultat de notre requete?
merci
lundi 4 février 2008 à 10:05:40 | Re : Récupération donnée Oracle

leprov

Si ma mémoire ne me joue pas de tours, je dirais que cette source est obsolète. A priori, si tu utilise le dernier DAC oracle, tu peux utiliser dataset, dataadapter, et autres objets hauts niveaux qui vont te permettre de te générer tout le code adéquat (et te résoudre toutes les questions que tu te pose et t'éviter d'écrire tes requêtes directement dans ton code, avec les contraintes et risques que ca comporte).
lundi 4 février 2008 à 10:12:21 | Re : Récupération donnée Oracle

jonathanC

Bonjour,
merci pour cette réponse, cependant ça fait 2 semaine que je fais du C# et je ne suis pas encore familier :s
pourrais-tu me détaillé un peu plus ta réponse :s

sur la doc de microsoft j'ai trouvé ça :

public DataSet SelectOracleSrvRows(DataSet dataset,string connection,string query)
{
    OracleConnection conn = new OracleConnection(connection);
    OracleDataAdapter adapter = new OracleDataAdapter();
    adapter.SelectCommand = new OracleCommand(query, conn);
    adapter.Fill(dataset);
    return dataset;
}

cependant je ne comprend pas comment renseigné les paramètre de connection, ainsi que la requete a effectué.
 
lundi 4 février 2008 à 10:30:10 | Re : Récupération donnée Oracle

leprov

dans l'IDE, tu peux cliquer droit sur ton projet pour ajouter un nouveau dataset a ton projet. classiquement, cela te permet de mapper tes tables de base de données sur des objets générés via un mode graphique. Cependant, oracle n'est pas géré nativement pour ca, et il te faut installer le DAC (data access component) oracle (que tu pourra trouver aisément sur le net). A partir de la, il te suffit de paramétrer correctement ta chaine de connection a la base de données, puis tu pourra tout faire en mode graphique (le mappage base de données/objets C#, les requêtes en évitant de les mettre dans le code en dur avec les problèmes de sécurité que cela comporte, etc...) Bref, deux choses a rechercher pour toi : 1 - utilisation des datasets 2 - interopérabilité oracle et datasets Tu trouvera (normalement) pour les deux un tas de tutoriels/codes sources/questions sur des forums.
lundi 4 février 2008 à 10:45:21 | Re : Récupération donnée Oracle

jonathanC

hm

public

DataSet SelectOracleSrvRows(DataSet dataset, string connection, string query)

{

connection =

"Provider = msdaora; Data Source =CHAINE_HOTE ; User Id = UTILISATEUR; Password = MDP";

query =

"select * from intranet_employe";

OracleConnection conn = newOracleConnection(connection);

OracleDataAdapter adapter = newOracleDataAdapter();

adapter.SelectCommand =

newOracleCommand(query, conn);

adapter.Fill(dataset);

return dataset;

}

je récupère donc le résultat de ma requête sous forme d'un dataset, il faut que je traite le résultat pour une webpart donc je ne suis pas sur de vouloir utiliser sous la forme d'un mode graphique.

En gros ce que je souhaiterai c'est de pouvoir récupérer les employé 1 a 1, et de les ajouter dans mon organigramme ( tree) en fonction de leur service.

Donc il me reste à trouver comment manipuler les dataset. ( d'ailleur comment pourrais-je tester si mon dataset a bien été rempli correctement ?)

lundi 4 février 2008 à 11:34:54 | Re : Récupération donnée Oracle

leprov

Le mode graphique te sert simplement a toi, codeur, d'éviter de te frapper tout le code et que ledit code soit généré. Tu "dessine" ta table comme dans ta BD, tu paramètre ta requête via l'éditeur, qui se chargera pour toi de la sécurité etc...Ca t'évitera lors de tes requêtes d'avoir des failles de sécurité, de perdre un temps fou a mapper tes tables (ou d'avoir des dataset faiblement typés avec la lourdeur et le manque de propreté/maintenabilité que cela engendre). utiliser DataSet (tel que et non dérivé) c'est comme utiliser une Form telle que...c'est possible, mais c'est un non sens (d'un point de vue POO). du moins pour l'utiliser pour autre chose que du polymorphisme et retyper fortement par la suite... Après si tu souhaite faire comme ci dessus, libre a toi, mais personnelement je te le déconseille vivement.
lundi 4 février 2008 à 11:52:00 | Re : Récupération donnée Oracle

jonathanC


Le mode graphique te sert simplement a toi, codeur, d'éviter de te frapper tout le code et que ledit code soit généré.

hm oui le pb(en tant que stagiaire) c'est qu'il faudra que j'explique a la ligne pres le code généré, d'ou mon envie de le taper moi même.

Ca t'évitera lors de tes requêtes d'avoir des failles de sécurité, de perdre un temps fou a mapper tes tables (ou d'avoir des dataset faiblement typés avec la lourdeur et le manque de propreté/maintenabilité que cela engendre).

je voudrais creer une webpart pour WSS, avec un simple select sur une table d'employé pour générer un organigramme. Au risque de paraitre stupide et sans vouloir te froissé, je ne vois pas quelles failles de sécurité je pourrais avoir?

utiliser DataSet (tel que et non dérivé) c'est comme utiliser une Form telle que...c'est possible, mais c'est un non sens (d'un point de vue POO). du moins pour l'utiliser pour autre chose que du polymorphisme et retyper fortement par la suite...

aie ça devrait me parlé, mais ça me dépasse un peu là

Après si tu souhaite faire comme ci dessus, libre a toi, mais personnelement je te le déconseille vivement.

Ce que je souhaite, c'est de récupérer de manière simple mes employés, faire une boucle pour les service, inclure une seconde boucle pour les employés, et généré ainsi mon arbre.
En php ça m'aurait pris 3 sec, et en C# ça me fait déprimé..
Mon stage arrive à sa fin et il faut absolument que je finisse ma webpart...





lundi 4 février 2008 à 13:35:56 | Re : Récupération donnée Oracle

leprov

si cest pour expliquer le code a la ligne pret, le C# n'est peut-etre pas le choix de langage le plus judicieux, puisque le langage se base bcp sur l'IDE et que la quantité de code généré peut être franchement conséquente...(avis personnel hein ^^) pour le coté sécurité, si tu n'as qu'une requête sans paramètres pas de soucis, effectivement, cependant je peux pas deviner qu'il n'y a que cette requête (et que ton projet n'en contient pas d'autres). Au moindre paramètre le risque sera la. pour le coté "ca te dépasse" je voulais simplement dire que si tu utilise ton dataset sans utiliser le code généré, tu vas utiliser la classe DataSet telle que. Cest comme si pour typer un int, un string, ou un double, pour les 3 tu utilisais des "object" et que tu t'en foutais du type réel sous jacent. Ca fonctionne, ca semble peut être pratique dans le cas particulier de ton appli (exemple hein), mais conceptuellement parlant c'est un non sens, et ca ne colle pas du tout avec le langage. utiliser un dataset, t'aurais rien de plus simple....Juste une série de clicks et fournir a l'IHM les noms des tables et des champs, la chaine de connection, la requête, et terminé...Moi le faire en C# ca me prendrais 3 secondes et en PHP ca me déprime... :)
lundi 4 février 2008 à 14:09:46 | Re : Récupération donnée Oracle

jonathanC

si cest pour expliquer le code a la ligne pret, le C# n'est peut-etre pas le choix de langage le plus judicieux, puisque le langage se base bcp sur l'IDE et que la quantité de code généré peut être franchement conséquente...(avis personnel hein ^^)

avis que je respecte, a vrai dire je dois réaliser un intranet avec sharepoint et pour rajouter des fonctionnalité j'ai voulu coder des webpart, je n y connais absolument rien en developpement .net, mon tuteur non plus donc je me débrouille un peu tout seul, et quand j'ai demandé en quel langage je devais programmer mes webpart on m a orienté vers le C#...


pour le coté sécurité, si tu n'as qu'une requête sans paramètres pas de soucis, effectivement, cependant je peux pas deviner qu'il n'y a que cette requête (et que ton projet n'en contient pas d'autres). Au moindre paramètre le risque sera la.

c'est vrai autant pour moi ...en fait j'ai une requete ou je vais chercher mes employé et ensuite je voudrais rajouter ces employé a mon tree.( c'est tout ^^ )

pour le coté "ca te dépasse" je voulais simplement dire que si tu utilise ton dataset sans utiliser le code généré, tu vas utiliser la classe DataSet telle que. Cest comme si pour typer un int, un string, ou un double, pour les 3 tu utilisais des "object" et que tu t'en foutais du type réel sous jacent. Ca fonctionne, ca semble peut être pratique dans le cas particulier de ton appli (exemple hein), mais conceptuellement parlant c'est un non sens, et ca ne colle pas du tout avec le langage.

oui là ca me parle beaucoup mieu, ça aurait du me parler dès le début ( honte à moi ) mais j'ai des petits trou :)

utiliser un dataset, t'aurais rien de plus simple....Juste une série de clicks et fournir a l'IHM les noms des tables et des champs, la chaine de connection, la requête, et terminé...Moi le faire en C# ca me prendrais 3 secondes et en PHP ca me déprime... :)

lol, ouai si j arrivais à le faire en le codant, ça m'arrangerai ^^ est-ce que ma connection marche même si la bdd n'est pas sur le meme serveur que sharepoint?( je sais qu'en php je n'ai pas besoin de renseigner l'ip du serveur mais en C# je suis pas sur .. :p )

si ma connection est bonne, il faut que je trouve le moyen, de récupérer et d'afficher mon dataset...^^

lundi 4 février 2008 à 16:08:03 | Re : Récupération donnée Oracle

jonathanC

ça y est je déprime... voila mon code, déja j'ai l'impression que ma connection ne marche pas..En tout cas quand je déploie ma webpart, sharepoint bug... Le data source dans la connection string, c'est la Chaine_hote qu'il faut mettrre ou bien le nom de la table? using System; using System.Runtime.InteropServices; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Serialization; using Microsoft.SharePoint; using Microsoft.SharePoint.WebControls; using Microsoft.SharePoint.WebPartPages; using System.Data; using System.Data.OracleClient; using System.Web; using System.Collections; namespace WebPart4 { [Guid("0781047e-d071-48d9-9ce7-463997e752ab")] public class WebPart4 : System.Web.UI.WebControls.WebParts.WebPart { public WebPart4() { this.ExportMode = WebPartExportMode.All; } public DataSet SelectOracleSrvRows(DataSet dataset, string connection, string query) { connection = "Provider = msdaora; Data Source = Chaine_HOTe? ; User Id = Identifiant ; Password = MDP"; query = "select * from intranet_employe"; OracleConnection conn = new OracleConnection(connection); OracleDataAdapter adapter = new OracleDataAdapter(); adapter.SelectCommand = new OracleCommand(query, conn); adapter.Fill(dataset); return dataset; } DataSet dataset = null; string valeur = null; string connection = null; string query = null; protected override void CreateChildControls() { this.Controls.Clear(); TreeView tree = new TreeView(); this.Controls.Add(tree); TreeNode rootNode = new TreeNode("AQUITANIS"); TreeNode firstNode = new TreeNode("Direction Générale"); TreeNode secondNode = new TreeNode("Direction des ressources Humaines"); TreeNode thirdNode = new TreeNode("Direction Financière"); TreeNode fourthNode = new TreeNode("Direction de la Location"); TreeNode fifthNode = new TreeNode("Direction du Patrimoine"); tree.Nodes.Add(rootNode); rootNode.ChildNodes.Add(firstNode); rootNode.ChildNodes.Add(secondNode); rootNode.ChildNodes.Add(thirdNode); rootNode.ChildNodes.Add(fourthNode); rootNode.ChildNodes.Add(fifthNode); rootNode.SelectAction = TreeNodeSelectAction.None; firstNode.SelectAction = TreeNodeSelectAction.None; secondNode.SelectAction = TreeNodeSelectAction.None; thirdNode.SelectAction = TreeNodeSelectAction.None; fourthNode.SelectAction = TreeNodeSelectAction.None; fifthNode.SelectAction = TreeNodeSelectAction.None; DataSet ds = SelectOracleSrvRows(dataset, connection, query); foreach (DataRow dr in ds.Tables[0].Rows) { // Remplace "nom_colonne" par le nom d'une des colonnes de ta table ORACLE valeur = dr["nom"] as string; this.Page.Response.Write(valeur); } } } } help :(

1 2

Cette discussion est classée dans : donnée, requete, récupération, oracle


Répondre à ce message

Sujets en rapport avec ce message

C#:Récupération d'une donnée par un double-click dans datagrid [ par mictou ] Bonjour,J'ai un datagrid connecté à un tableau dans un SGBD. J'aimerais pouvoir récupérer la valeur d'une des colonnes dans une variable lorsque je fa récupération des résultats d'une requete dans un tableau [ par maxelpiratos ] mon problème est dans le titre :) je fais un select qui me retourne plusieurs lignes et je n'arrive pas à les stoker une par une dans un tableau de la Requete mysql Base de donnée [ par Mattis ] Bonjour.J'aimerais savoir comment à partir d'un remotes de mIRC on peut interoger une base de donnée mysql.Je ne connais pas trop mysql mais j'ai un c Dupliquer une base de donnée Oracle [ par benito16 ] Bonjour,Je souhaiterai dupliquer une base de données Oracle afin de pouvoir travailler sur une base test sans modifier celle d'origine.Est-ce possible base de donnée Oracle [ par anass0110 ] Slt a tout le monde j'ais deja creer une base de donneée qui contient plusieurs tables avec des enregistrements je veux savoir comment puis-je transpo Thread et récupération de donnée [ par Clydopathe ] Bonjour,Je cherche à récupérer dans un thread les informations contenus dans une listbox. De plus le thread ne fais pas partie de ma Form1.cs ni de mo base de donnée&c# [ par medinfo87 ] Salut tout le monde, Je veux exécuter une requete d'ajout alors que j'ai des champs facultatifs à remplir comme champ email (textbox7) et champs nu Requete Oracle et algorithme [ par LordOfTheShadow ] Bonjour à tous, J'ai une classe CConnexion qui permet de se connecter à une bdd Oracle et qui possède en plus une fonction ExecuterRequete qui va exé Récupération de données dans oracle [ par Tsugero ] Bonjour, J'ai un problème avec la récupération du numéro de l'utilisateur. Par exemple ma requête est SELECT NUMERO FROM UTILISATEUR. Mais quand je f Probleme insertion de donnée [ par giorgio08 ] Bonjour a tous j ai un pti problème, j ai une form ds laquelle l'utilisateur rempli une fiche signalétique d un client (Nom,Société,Adresse,...) le pr


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Septembre 2010
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
27282930   

Consulter la suite du CalendriCode

 
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 : 0,640 sec (3)

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