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 :

Meilleur methode d'affichage pour un moteur de recherche


Sujet :

ASP.NET

  1. #1
    Membre averti
    Inscrit en
    Janvier 2005
    Messages
    41
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 41
    Par d�faut Meilleur methode d'affichage pour un moteur de recherche
    Bonjour a tous,

    je suis en train de coder un annuaire qui marche un peu comme Google :

    une barre de recherche (enfin, j'en ai 4 moi) puis, apres le clic, l'affichage des resultats.

    Un clic sur un des resultats amene a la page detaille de ce resultat.

    Rien de complique en fait.

    Quelle est le meilleur moyen (le + rapide et le plus simple) de gerer ca :

    1. Datalist (ou Repeater)
    2. Un SqlReader
      Ex :
      Code : S�lectionner tout - Visualiser dans une fen�tre � part
      1
      2
      3
      4
      5
      6
      7
       
      SqlDataReader myReader = myCommand.ExecuteReader();
      while (myReader.Read()){
                  name.text = myReader["categorySecondName"].ToString();
                  id.text = myReader["categorySecondID"].ToString();            
              }
      }
      en code behind et des <asp:Literal> ou <asp:Label> sur l'aspx pour afficher le resultat dans une autre boucle.
      ou
      Code : S�lectionner tout - Visualiser dans une fen�tre � part
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
       
                  String aff=null;
      SqlDataReader myReader = myCommand.ExecuteReader();
      while (myReader.Read()){
                  String name = myReader["categorySecondName"].ToString();
                  String id = myReader["categorySecondID"].ToString();            
       
                  aff += "<div>"
                  aff += "<h1>"+name+"</h1>";
                  aff += "<p>" + id + "</p>";
                  aff += "</div>"
              }
      monLiteral.text = aff; // affiche sur la page
      }
    3. autre ?


    Et pour les requetes SQL, procedures Stockees ou non ?
    Je sais pas enciore les utilisees, mais ca peut etre interessant je pense.

    Merci a vous !

  2. #2
    Membre Expert Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    D�tails du profil
    Informations personnelles :
    �ge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Par d�faut
    Fait la 1, surtout pas la 2.

    Sinon oui, une proc�dure stock� c'est plus propre, s�curis� et un chou�a plus rapide.

  3. #3
    Membre averti
    Inscrit en
    Janvier 2005
    Messages
    41
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 41
    Par d�faut
    ok, je reste donc sur mon Repeater.

    Par contre pour les Stored Procedures, je ne sais pas comment faire exactement :

    Pour l'instant j'envoie ma requete au Repeater de cette facon :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    String sqlSearch = "SELECT * FROM [companyTable] WHERE (([nameEn] LIKE '%' + @nameEn + '%')";
    if (rCat2 != 0) sqlSearch += " AND ([categorySecond] = @categorySecond)";
    sqlSearch += " )ORDER BY [categorySecond], [nameEn]";
    SqlDataSource1.SelectCommand = sqlSearch;
    C'est cette ligne : SqlDataSource1.SelectCommand = sqlSearch;
    qui execute le Repeater.

    Si je passe par une Stored Procedure, comment je recupere et lui envoie le resultat, car la ce n'est plus une requete SQL que je devrai lui renvoyer, mais un resultat renvoye par la procedure stockee ?

  4. #4
    Membre Expert Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    D�tails du profil
    Informations personnelles :
    �ge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Par d�faut
    Bein tu lis la doc MSDN, ou tu cherches un peu parmis les centaines d'exemples sur google, et si t'as un pb ou une question pr�cise, tu reviens la poser ici

  5. #5
    Membre averti
    Inscrit en
    Janvier 2005
    Messages
    41
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 41
    Par d�faut
    Citation Envoy� par Mose
    Bein tu lis la doc MSDN, ou tu cherches un peu parmis les centaines d'exemples sur google, et si t'as un pb ou une question pr�cise, tu reviens la poser ici
    oui oui, en plus je crois qu'il suffit de donner le nom de la Procedure Stockee et de preciser au Repeater le type de requete.

    Par contre c'est dommage que 80% du code sur le net pour ll'asp soit en VB et pas en C#...

  6. #6
    Membre Expert Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    D�tails du profil
    Informations personnelles :
    �ge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Par d�faut
    Rajoute 'C#' dans ta recherche google

    C'est ptet vrai si tu ne recherche que des articles en fran�ais. Maintenant si tu rajoute l'anglais, crois moi y'a de la mati�re. J'ai tr�s rarement �t� en gal�re pour trouver un sample en C#.

    Et pour un truc aussi classique que les proc�dures stock�es, franchement si tu trouves pas t'es d'une mauvaise foi incroyable

  7. #7
    Membre averti
    Inscrit en
    Janvier 2005
    Messages
    41
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 41
    Par d�faut
    ok c'est nikel
    Je passe par une procedure stockee ::

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    ALTER Procedure dbo.test
     
    @keyword char(50),
    @category char(5)
     
    AS
     
    Declare @strSQL varchar(300)
    Declare @reste varchar(200)
    SET @reste = ''
     
    IF (@category != 0) 
    	SET @reste = ' AND (categorySecond = '+@category+')';
     
     
    SELECT @strSQL = 'SELECT     *
    FROM         companyTable
     
    WHERE     (((nameEn LIKE ''%' + ltrim(rtrim(@keyword))+'%'' ) ) '+@reste+')'
     
     
     
    exec(@strSQL)
     
    return @@Rowcount
    Elle fonctionne bien (par contre je sais pas si elle est optimale...)
    Je voudrais recuperer le nombre de resultats, j'ai donc rajoute :: return @@Rowcount

    Par contre, les resultats etant affiches automatiquement dans mon repeater ::
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <asp:Repeater ID="datalist" runat="server" DataSourceID="SqlDataSource1">
                <ItemTemplate>
                    <p>
                        <span class="right">Tel.
                            <%# Eval("telnum") %>
                        </span><strong><a onclick="tu" href="Product.aspx?id=<%# getID(Eval("companyID")) %>">
    // ...
    je ne sais pas recuperer la valeur du return (nombre de resultats) pour traiter cette valeure dans le code behind.
    Quand je passe par le code behind avec : datalist.Items.count pour avoir le nombre de resultats, la valeur est recuperee "en retard".
    L'affichage se fait avant sa mise a jour...

    Auriez vous des conseils la dessus ?

  8. #8
    Membre Expert Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    D�tails du profil
    Informations personnelles :
    �ge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Par d�faut
    Citation Envoy� par djedie
    Auriez vous des conseils la dessus ?
    Oui, �vite d'utiliser les SqlDataSource si tu veux faire du code behind.

Discussions similaires

  1. Strat�gie pour un moteur de recherche �volu�
    Par berceker united dans le forum Langage SQL
    R�ponses: 6
    Dernier message: 05/01/2008, 12h42
  2. [MySQL] Base de donn�es : strat�gie � adopter pour un moteur de recherche
    Par yohan0262 dans le forum PHP & Base de donn�es
    R�ponses: 10
    Dernier message: 04/06/2007, 11h35
  3. selection date ou VIDE pour un moteur de recherche
    Par popofpopof dans le forum VBA Access
    R�ponses: 4
    Dernier message: 16/05/2007, 07h29
  4. [SQL] Aide pour un moteur de recherche
    Par Death83 dans le forum PHP & Base de donn�es
    R�ponses: 15
    Dernier message: 26/10/2005, 14h12
  5. comment faire ma base de donn�e pour un moteur de recherche
    Par HoB dans le forum D�cisions SGBD
    R�ponses: 2
    Dernier message: 04/05/2004, 15h07

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