Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : ajax+basede bonnée+autocomplétion [ Web 2.0 / Ajax ] (Shany)

dimanche 13 mai 2007 à 05:35:48 | ajax+basede bonnée+autocomplétion

Shany

Bonsoir,
Dans le cadre d'une application, je souhaiterais réaliser une autocomplétion.
J'utilise VS2005, je code en asp.net C# avec ajax en plus.
J'ai vu dans ma boite à outils ajax toolkit le control AutoCompleteExtender, c'est celui que je souhaite utiliser avec un web service.
Mon problème se trouve au niveau du webservice, je ne sais pas comment l'utiliser pour pouvoir réaliser mon autocomplétion.
Cette autocomplétion est relié à un texbox. (j'ai dejà paramétré le control AutoCompleteExtender pour qu'il puise utilisé le webservice)
Quand l'utisateur, entre la première lettre d'un mot par exemple, une liste de choix doit s'afficher (comme pour le google suggest).
La liste de choix se trouve dans une base de données type access 2003.
Si quelqu'un pouvait m'aider en m'expliquant quoi faire au niveau du webservice ce serait très aimable de sa part.
Merci.

lundi 14 mai 2007 à 12:17:20 | Re : ajax+basede bonnée+autocomplétion

yanis7518

Salut shani

voila la structure que tu dois utiliser pour utiliser ton webservice avec le composant autocomplete


using System;
using System.Collections.Generic;
using System.Web.Services;
using System.Data.SqlClient;
[WebService(Namespace = " [ Lien ]")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class AutoComplete : WebService
{
    public AutoComplete()
    {
    }
    [WebMethod]
    [System.Web.Script.Services.ScriptMethod]
    public string[] GetCompletionList(string prefixText, int count)
    {
            //ton traitement ici
     }
}



ensuite tu n'as plus qu'a paramétrer ton controle de cette manière



            <ajaxToolkit:AutoCompleteExtender
                runat="server"
                ID="autoComplete1"
                TargetControlID="TON TEXTBOX"
                ServicePath="~/AutoComplete.asmx"
                ServiceMethod="GetCompletionList"
                MinimumPrefixLength="3"
                CompletionInterval="1000"
                EnableCaching="true"
                CompletionSetCount="12" />


si les résultats de ta requete son important je te conseille de laisser le "MinimumPrefixLength" à 3 sinon met le à 1.

Voila bonne journée


lundi 14 mai 2007 à 16:27:04 | Re : ajax+basede bonnée+autocomplétion

Shany

Salut Yanis7518,

Je te remercie pour ta réponse mais ce n'est pas du tout ce que je recherche.

Je connais la structure du web service là où je bloque c'est au niveau de mon traitement : je dois me connecter à ma base de données Access 2003 pour récupérer le champ qui m'intéresse.

J'ai cru comprendre au détour de mes recherches que si j'utilise une base de données Access je dois utilisé non pas System.Data.SqlClient (qui est utilisé pour les base de données sql server) mais plutot System.Data.OleDb (ado.net).

On m'avait aussi dit d'utiliser des datareader, des dataset et des sqlcommand. Après quelques recherches j'ai fini par m'embrouillé.

Ce que j'aimerais, c'est une aide au niveau de mon traitement :

- comment se connecter à ma base Access ?
- comment récuper mon champs pour ensuite faire mon autocomplétion ?

Voilà ce que je recherche.

Au niveau du paramétrage de mon controle AutoCompleteExtender, c'est déjà fait il est déjà paramétré avec tous les renseignements nécessaires.

Merci encore, mais celà ne correspond pas à ce que je recherche.


lundi 14 mai 2007 à 17:00:48 | Re : ajax+basede bonnée+autocomplétion

yanis7518

désolé j'avais mal compris

donc pour te connecter a ta base Access via OLE voila le code


OleDbConnection connec = new OleDbConnection;

connec.ConnectionString =
"Provider=Microsoft.Jet.OLEDB.4.0;UserID=Admin;DataSource=C:\\MaBase.mdb;"; 
connec.Open();



ensuite tu as juste à executer ta requete


string requete = "SELECT tavalue FROM ...";
OleDbCommand tmpcmd = new OleDbCommand(requette, connect);
OleDbDataReader tmpreader = tmpcmd.ExecuteReader();
while(tmpreader.Read())
{
   console.Writeline(tmpreader.getstring(0));
}
tmpreader.close();
connec.close();



voila je pense que la j'ai repondu a ta question (enfin j'espere )


lundi 14 mai 2007 à 17:25:22 | Re : ajax+basede bonnée+autocomplétion

yanis7518

a la place du console.writeline  tu stock tes valeurs dans un tableaux de string

lundi 14 mai 2007 à 20:03:50 | Re : ajax+basede bonnée+autocomplétion

Shany

Re Yanis,
j'ai testé ton code mais ca ne fonctionne pas. Quand tu me dis de stock mes valeurs dans un tableau de string, c'est-à-dire !?

voici le code que j'ai tapé. J'avais tester avec le console.writeLine mais ca ne donnait rien.

using System;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Data;
using System.Data.OleDb;


/// <summary>
/// Description résumée de autocomprs
/// </summary>
[WebService(Namespace = " [ Lien ]")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class autocomprs : System.Web.Services.WebService {

    public autocomprs () {

        //Supprimez les marques de commentaire dans la ligne suivante si vous utilisez des composants conçus
        //InitializeComponent();
    }

    [WebMethod]
    public string[] AutoSuggest(string prefixText, int count) {

        OleDbConnection connec = new OleDbConnection();

        connec.ConnectionString = "Provider=Microsoft.JET.OLEDB.4.0;DataSource=base.mdb;";

        connec.Open();

        string requete = "SELECT Nom FROM base where Nom LIKE 'prefixText' ORDER BY Nom";

        OleDbCommand tmpcmd = new OleDbCommand(requete, connec);

        OleDbDataReader adaption = tmpcmd.ExecuteReader();     

        while(adaption.Read())
        {

            Console.WriteLine(adaption.GetString(0));

        }

        adaption.Close();
        connec.Close();

    }

}

Si tu pouvais m'expliquer plus en détail l'utilisation du tableau de string ce serait très sympa. Merci.


mardi 15 mai 2007 à 09:34:57 | Re : ajax+basede bonnée+autocomplétion

yanis7518

tu as une erreur au niveau de cette ligne

string requete = "SELECT Nom FROM base where Nom LIKE 'prefixText' ORDER BY Nom";

tu dois rajouter le % pour lui indiquer qu'il doit te retourner tous les mots commençant par ton préfixe et tu obtiens :

string requete = "SELECT Nom FROM base where Nom LIKE 'prefixText%' ORDER BY Nom";

mardi 15 mai 2007 à 19:39:16 | Re : ajax+basede bonnée+autocomplétion

Shany

Re salut Yanis,
J'ai corrigé l'erreur que j'avais néanmoins lorsque je lance l'application une erreur m'est retournée :

Erreur 1 'autocomprs.AutoSuggest(string, int)' : tous les chemins de code ne retournent pas nécessairement une valeur.

voici le code corriger, si tu arrive à trouver où se trouve l'erreur ... moi je pense que c'est au niveau des arguments déclarer dans la méthode utilisée !? :

using System;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Data;
using System.Data.OleDb;


/// <summary>
/// Description résumée de autocomprs
/// </summary>
[WebService(Namespace = " [ Lien ]")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class autocomprs : System.Web.Services.WebService {

    public autocomprs () {

        //Supprimez les marques de commentaire dans la ligne suivante si vous utilisez des composants conçus
        //InitializeComponent();
    }

    [WebMethod]
    public string[] AutoSuggest(string prefixText, int count) {

        OleDbConnection connec = new OleDbConnection();

        connec.ConnectionString = "Provider=Microsoft.JET.OLEDB.4.0;DataSource=base.mdb;";

        connec.Open();

        string requete = "SELECT Nom FROM base where Nom LIKE 'prefixText%' ORDER BY Nom";

        OleDbCommand tmpcmd = new OleDbCommand(requete, connec);

        OleDbDataReader adaption = tmpcmd.ExecuteReader();     

        while(adaption.Read())
        {

            Console.WriteLine(adaption.GetString(0));

        }

        adaption.Close();
        connec.Close();

    }

}

Merci encore pour l'aide que tu m'apporte.


mardi 15 mai 2007 à 19:39:28 | Re : ajax+basede bonnée+autocomplétion

Shany

Re salut Yanis,
J'ai corrigé l'erreur que j'avais néanmoins lorsque je lance l'application une erreur m'est retournée :

Erreur 1 'autocomprs.AutoSuggest(string, int)' : tous les chemins de code ne retournent pas nécessairement une valeur.

voici le code corriger, si tu arrive à trouver où se trouve l'erreur ... moi je pense que c'est au niveau des arguments déclarer dans la méthode utilisée !? :

using System;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Data;
using System.Data.OleDb;


/// <summary>
/// Description résumée de autocomprs
/// </summary>
[WebService(Namespace = " [ Lien ]")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class autocomprs : System.Web.Services.WebService {

    public autocomprs () {

        //Supprimez les marques de commentaire dans la ligne suivante si vous utilisez des composants conçus
        //InitializeComponent();
    }

    [WebMethod]
    public string[] AutoSuggest(string prefixText, int count) {

        OleDbConnection connec = new OleDbConnection();

        connec.ConnectionString = "Provider=Microsoft.JET.OLEDB.4.0;DataSource=base.mdb;";

        connec.Open();

        string requete = "SELECT Nom FROM base where Nom LIKE 'prefixText%' ORDER BY Nom";

        OleDbCommand tmpcmd = new OleDbCommand(requete, connec);

        OleDbDataReader adaption = tmpcmd.ExecuteReader();     

        while(adaption.Read())
        {

            Console.WriteLine(adaption.GetString(0));

        }

        adaption.Close();
        connec.Close();

    }

}

Merci encore pour l'aide que tu m'apporte.


mardi 15 mai 2007 à 19:39:31 | Re : ajax+basede bonnée+autocomplétion

Shany

Re salut Yanis,
J'ai corrigé l'erreur que j'avais néanmoins lorsque je lance l'application une erreur m'est retournée :

Erreur 1 'autocomprs.AutoSuggest(string, int)' : tous les chemins de code ne retournent pas nécessairement une valeur.

voici le code corriger, si tu arrive à trouver où se trouve l'erreur ... moi je pense que c'est au niveau des arguments déclarer dans la méthode utilisée !? :

using System;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Data;
using System.Data.OleDb;


/// <summary>
/// Description résumée de autocomprs
/// </summary>
[WebService(Namespace = " [ Lien ]")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class autocomprs : System.Web.Services.WebService {

    public autocomprs () {

        //Supprimez les marques de commentaire dans la ligne suivante si vous utilisez des composants conçus
        //InitializeComponent();
    }

    [WebMethod]
    public string[] AutoSuggest(string prefixText, int count) {

        OleDbConnection connec = new OleDbConnection();

        connec.ConnectionString = "Provider=Microsoft.JET.OLEDB.4.0;DataSource=base.mdb;";

        connec.Open();

        string requete = "SELECT Nom FROM base where Nom LIKE 'prefixText%' ORDER BY Nom";

        OleDbCommand tmpcmd = new OleDbCommand(requete, connec);

        OleDbDataReader adaption = tmpcmd.ExecuteReader();     

        while(adaption.Read())
        {

            Console.WriteLine(adaption.GetString(0));

        }

        adaption.Close();
        connec.Close();

    }

}

Merci encore pour l'aide que tu m'apporte.



1 2

Cette discussion est classé dans : ajax, webservice, autocomplétion, basede, bonnée


Répondre à ce message

Sujets en rapport avec ce message

Comment éviter que l'autocomplétion native de Firefox ou IE passe devant un contrôle d'autocomplétion Ajax? [ par Nixar ] Bonjour à tous,Pour mon site j'ai implémenté un contrôle "AutoComplete" de l'AjaxControlToolkit. Tout fonctionne correctement à ceci près que j'ai par ajax toolkit autocompletion [ par rymouche ] Bonjour,Je développe en C# sur VS 2005Je souhaiterais inclure plusieurs textbox sur lesquels la même autocomplétion sera faite. J'ai un composant ascx Comment atteindre les controles de la page aspx dans une Ajax.Method? [ par obitskater ] Bonjour tout le monde, Voilà, je vous expose mon petit soucis: Dans mon code-behind C# de ma page aspx, j'ai une methode AjaxPro que je peux appeler Gros soucis Serveur [ par kyle ] Bonjour,Voilà j'ai un gros problème depuis quelques jours, je ne trouve pas de raison ni encore moins de solutions :J'ai un serveur 2003, une applicat Ajax UpdatePanel - récupération des évéenemnts [ par SpanK ] Bonjour,J'utilise une application ASP.NET avec AJAX et notament le UpdatePanel.J'ai un timer qui permet la mise à jour de l'updatepanel toutes les 10 appel webservice me renvoyant Null [ par neril82 ] Je m'arrache les cheveux  !! Je paie une bière virtuelle a celui qui trouve une explication... J'ai un webservice en php avec les lib nusoap, un webse Utilisation d'un WebService dans un projet [ par Jojo092 ] Bonjour tout le monde,voilà je suis un petit débutant en WebServices et j'ai un petit problème d'utilisation. J'ai en fait une solution qui comprend 3 AJAX et boutons dynamiques [ par Gastaropod ] Bon, j'ai un soucis assez déroutant.Pour mieux me faire comprendre, je vais expliquer le cheminement que parcoure mon appli afin que ce soit plus expl Conflits Ajax et WebControl [ par ofonadroite ] Voila mon problème :       L'utilisateur fait une recherche qui, une foit lancee, affiche le résultat dans un gridview lui-même intégré dans un accord configurer un site asp.net2.0 pour accepter les composant ajax [ par sammon ] salut;dans mon projet j'ai besoin d'utiliser un composant calendar pour afficher la date (c'est pas le calendar de visual studion 2005) .je voudrais u


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,827 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.