Accueil > Forum > > > > Récupération donnée Oracle
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=25671dans 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 :(
|
|
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
Livres en rapport
|
Derniers Blogs
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
Comparez les prix

HTC Magic
Entre 429€ et 429€
|