Comment récupérer des données oracle dans un gridView en mode connecté/deconnect

teentown Messages postés 2 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 1 juin 2008 - 30 mai 2008 à 22:35
teentown Messages postés 2 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 1 juin 2008 - 1 juin 2008 à 21:48
Salut à tous,

Je débute en asp.net et j'ai un petit projet à développer.en mode http
connexion/ session user /requete sql /deconnexion/ chargement d'un gridview avec ADO.NET


Mon problème est le suivant, je génère une connectionString avec un login/passord en dynamique
dans un formulaire d'authentification accueil.aspx. mais mon code se trouve dans accueil.aspx.vb

La connection réussie.Mais lorsque j'essaye de remplir un fomulaire liste de type gridview j'ai une exception
mon gridview ne pointe pas sur une source de données puisque je ne veux pas être connecté en permanence
là ça pose un pb car visual web studio developpeur n'est manifestement pas fait pour faciliter les developpements avec des accès oracle mais plutôt pour sqlserver ça j'ai bien compris !!!!

je voudrais qu'on m'explique la philosophie pour faire du web en asp.net car je viens du monde java et j'avoue
être perdu surtout quand on doit requeter sous oracle .

Faut il coder la chaine de connexion dans un formulaire aspx chaque fois qu'on doit faire une requete puisque je le répète mon but et dans un premier temps
de renvoyer le résultat d'une requete dans un gridview puis de pouvoir éventuellement modifier un enregistrement?

un exemple de ce que j'ai trouvé ...



<%@ Language=VBScript %>
<html>
<head>
<title>Oracle Test</title>
</head>

<center>
<%
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "dsn=OracleDSN;uid=userid;pwd=password;"
Set objRs = objConn.Execute("SELECT * FROM DEMO.EMPLOYEE")
Response.Write "\"
Response.Write \"----
\"
For I = 0 To objRS.Fields.Count - 1
Response.Write \"" & objRS(I).Name & ", \"
Next
Response.Write \"\"
Do While Not objRS.EOF
Response.Write \"----
\"
For I = 0 To objRS.Fields.Count - 1
Response.Write \"" & objRS(I) & ", \"
Next
Response.Write \"\"
objRS.MoveNext
Loop
Response.Write "
"
objRs.Close
objConn.Close
%>
</center>

</html>

En plus dans cet exemple les donnes ne sont pas envoyees dans un gridview ou datalist

SOS......est un pro de dotnet peut me mettre sur la voie ???

Merci d'avance

2 réponses

yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
31 mai 2008 à 16:27
Salut,

L'exemple que tu montres n'est pas du tout du dotnet mais bien de l'asp 1 avec VBScript.
Dotnet (1,2 et 3) est à des années lumière de cela.

il y a beaucoup de façons de  faire mais la plus classique est de stocker ta chaine de connexion dans le fichier WEB.CONFIG
dans la section ConnectionString ou même dans une section AppSettings.
Ensuite on la récupère gràce à l'assembly ConfigurationManager.


Pour le gridView, on fait généralement une méthode qui renvoi une DataSource, en l'occurence une DataTable que l'on va
ensuite Binder au gridView.


public DataTable getDataSource(string paramEventuels)
{
   // recup chaine de connection avec ConfigurationManager.ConnectionsString["MaChaineDeConnexion"]
   // Crée un objet OracleConnection ou OleDbConnection
   // Crée une DataTable
   DataTable dt = new DataTable();

   // Crée un Adapter pour exécuter la requete ou la procédure stockée
   // Rempli la dataTable
   adapter.Fill(dt);

   // FERME LA CONNECTION

   return dt;
}

Ensuite il suffit de faire correspondre les colonnes du gridView avec la dataSource
par exemple dans le aspx , on a les templates de colonne du gridView et le Label d'affichage de la cellule
 <Columns>

ect...
<Label ID="lblColonne1" runat="server" Text='  <%# Bind("COLONNE_DATASOURCE_1") %>'></Label>

(anciennement DataBinder.Eval())

Grace à cela quant tu vas faire dans le code :

gridView1.DataSource = getDataSource(paramEventuels);
gridView1.DataBind();

Et bien les données s'afficheront en mode déconnecté.
0
teentown Messages postés 2 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 1 juin 2008
1 juin 2008 à 21:48
salut yann_lo_san,

merci déjà pour ta réponse mais histoire d'être moins naze je vais essayer de comprendre
la techno DOTNET une réponse en amène autre, pourquoi dotnet est a des années lumières
puisque la technologie est celle de microsoft mais alors elle ne repose pas sur aspx et vb alors
là je ne capte plus rien je suis embrouillé......

Pour info j'ai installé Visual Web Developpeur 2008 et le framwork 3 puis j'ai créé un nouveau
projet web et j'ai choisi de coder en asp/vb plutôt qu'en c#. 

selon toi il n'y a pas un brin de dotnet là dedans , plus d'explications SVP..........
0
Rejoignez-nous