IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

[C# 1.1] - Connection à la BD dans ItemDataboud


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Par défaut [C# 1.1] - Connection à la BD dans ItemDataboud
    Bonjour à tous,

    J'ai développé un application qui nécessite un journal multilangue. Pour commencer je vous invide donc à regarder le shéma relationnel de ma base de données Relation.jpg.

    Le principe est assez simple, j'ai une table (Etiquette) qui possède la liste de toutes les étiquettes possible du système et ce dans toutes les langues. Regarder l'image Étiquette.jpg à titre de référence

    La colonne CultureID spécifie la culture (fr-CA, en-CA, fr-FR, etc...) La colonne ID c'est la CLÉ identifiant l'étiquette dans le système. La dernière colonne c'est la valeur de l'étiquette pour la culture spécifiée. La valeur de l'étiquette peut contenir des paramètres variables comme {0} ou {1}, etc... Ceuxi-ci seront remplacé plus tard. Tout dépendement de la culture de l'utilisateur consultant le journal.

    Maintenant regardons ce que ma table de journal contient Jounal.jpg. Prenons l'entrée #3, il y a une entrée en date du 15-11-2006 à 22h05 avec l'étiquette "USER_REMOVE_ROLE_TO_A_USER". Dans la table enfant (JournalParam il y a 3 entrées qui identifient les paramètres nécessaire à la construction d'une description d'entrée du journal.

    Si je suis un utilisateur avec le ID #1 et que je désire consulter le journal entre une date précise, je lancerais la requête suivante : RequeteJournal.jpg Ce qui produirait ceci comme résultat :RequeteJournalResultat.jpg

    Bref je récupère ce résultat dans un Dataset et par la suite je relance une requête pour chaque entrées à savoir s'il y a des paramètres y étant associé.
    Comme par exmple, la requête de la première entrée donnerait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ID	Type	Valeur
    4	User	2
    5	Role	2
    6	User	3
    À partir de là, je vérifie le type de la valeur, si c'est "User" alors je vais lire l'utilisateur dans la base de donnés et je remplace le {0} par son nom. Si c'est un role alors je vais voir dans la base de données, je récupère le bon rôle attaché à la culture désirés et je remplace le paramètre. Si c'est un type "String" je remplace simplement par ce qui est dans la colonne valeur. Alors voilà tout ceci fonctionne bien, c'est un journal TOUT À FAIT multilangue et très intéressant.

    Mais il a 2 gros défaut, il n'est pas vraiment RELATIONNEL et en ce qui à trait aux paramètres. De plus le questionnement des tables pour chaque paramètre est un processus très gourmant.

    Par la suite je me suis dit que je pourrait simplement récupérer en une requête et seulement questionner la base de données dans le ItemDataBound de mon datagrid mais hélas, si j'ai 2000 items et 50 items par pages, cela fait 50 connections à la BD à chaque chargement de page. Par conséquent, il serait possible d'ouvrir une connection à la BD lors du OnLoad de la page mais quand la FERMER ? Il n'y a pas de OnEndDataBound.

    Vous avez une autre idée pour gérer un journal multilange ?
    Merci à tous
    Images attachées Images attachées      

  2. #2
    Membre Expert Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Par défaut
    je n'ai aps tout compris aux méandres de ta reflexion mais as tu pensé à l'evenement onLoadcomplete?

  3. #3
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Par défaut
    Citation Envoyé par Arthis
    je n'ai aps tout compris aux méandres de ta reflexion mais as tu pensé à l'evenement onLoadcomplete?
    Merci d'avoir pris le temps de tout lire

    Cependant, l'événement OnLoadComplete n'est pas accessible sous C# 1.1
    Mais peut-être que l'événement UnLoad ferait l'affaire ?

  4. #4
    Membre Expert Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Par défaut
    Je debute un peu quand même sous .net malgré tout donc je ne suis pas tout a fait sur de mes assertions, mais si tu stockais en variables d'application les données issues des differentes langues. Si la charge n'est pas trop importante d'un point de vue ressource machine ce serait le plus simple car alors tu n'aurais plus qu'a faire un requete pour connaitre l'etat de ton journal et mettre les infos persistente en rapport avec le resultat de ta requete.

    PS Edit : l'envenement onunload est plutot l'unload de la page web chez le client, je pense que le onprerender se preterait plus volontiers à l'opération

  5. #5
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Par défaut
    Citation Envoyé par arthis
    si tu stockais en variables d'application les données issues des differentes langues. Si la charge n'est pas trop importante d'un point de vue ressource machine ce serait le plus simple car alors tu n'aurais plus qu'a faire un requete pour connaitre l'etat de ton journal et mettre les infos persistente en rapport avec le resultat de ta requete
    Malheureusement pour l'idée des variables globales ce ne serait pas pratique puisque je devrais charger en mémoire tous les utilisateurs (pour leur prénom et nom), les rôles (en version multilangue), les étiquettes multilangues, et un paquet d'autres paramètres qui requiert une description multilangue.

    Mais merci quand même de ton coup de main.

    Citation Envoyé par arthis
    l'envenement onunload est plutot l'unload de la page web chez le client, je pense que le onprerender se preterait plus volontiers à l'opération
    Le Unload est côté serveur et non client.
    Citation Envoyé par http://msdn2.microsoft.com/en-us/library/system.web.ui.control.unload.aspx
    Occurs when the server control is unloaded from memory. (Inherited from Control.)

    Remarks

    Server controls must perform any final clean-up, such as closing files, database connections and discarding objects, during this stage of the control lifecycle before the instance is unloaded.
    Bref c'est déjà un début de la solution à mon questionnement, maintenant il reste à savoir s'il est possible d'améliorer en totalité mon système de journal multilangue. Vous avez d'autres idées ?

Discussions similaires

  1. Paramétrer connection JBOSS sqlserver dans code java
    Par g25452 dans le forum Wildfly/JBoss
    Réponses: 4
    Dernier message: 19/03/2009, 11h31
  2. Récuperer la listes des connectés à une BDD dans une requête
    Par docjo dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 09/09/2008, 19h23
  3. comment puis je connecté un MAC dans un LAN de PC
    Par devlopassion dans le forum Apple
    Réponses: 3
    Dernier message: 15/06/2008, 13h04
  4. [PDO] se connecter à plusieurs bases dans la meme page
    Par mickael.guilbert dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 11/01/2008, 18h07
  5. [MySQL] Connections à plusieurs serveurs dans une seule page php
    Par Pgs dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 02/06/2006, 16h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo