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 :

requete manuelle sqldatasource


Sujet :

ASP.NET

  1. #1
    Membre averti Avatar de anikon
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2007
    Messages : 57
    Par défaut requete manuelle sqldatasource
    Bonjour,

    je voudrai faire une requete construite manuellement (découpage de chaine et construction dynamique de la requete) et l'affectée à un sqldatasource. J'ai essayé de remplir la propriété SelectCommand de plusieurs facon mais rien à faire ... Quelqu'un pourrait-il m'indiquer la marche à suivre ?

    Merci

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Par défaut
    D'après la documentation, c'est bien ça pourtant ...

    Ensuite, ce qui pourrait aider à t'aider (...) :

    C'est quoi les différentes méthodes ?
    C'est quoi le message d'erreur ?

  3. #3
    Membre Expert Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Par défaut
    poste du code si tu veux qu'on trouve ce que tu fais faux..

  4. #4
    Membre averti Avatar de anikon
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2007
    Messages : 57
    Par défaut
    Voila déjà mon erreur : ORA-01036: numéro/nom de variable interdit

    J'ai une fonction qui s'éxecute dans le Page_Load et qui me retourne une requete SQL sous la forme d'une chaine valide (testé directement sur Oracle).

    Requete retourné (qui fonctione je RE précise) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT PANIER_SAVE.PANIER_SAVE_NOM, PANIER_SAVE.PANIER_SAVE_DATE, PANIER_SAVE.PANIER_SAVE_MONTANT_HT, PANIER_SAVE.PANIER_SAVE_ANNEE , PANIER_SAVE.CENTRE_LETTRE 
    FROM PANIER_SAVE  
    WHERE (  INSTR(PANIER_SAVE.CENTRE_LETTRE, 'S') > 0  
        OR  INSTR(PANIER_SAVE.CENTRE_LETTRE, 'D') > 0  
        OR  INSTR(PANIER_SAVE.CENTRE_LETTRE, 'J') > 0  
        OR  INSTR(PANIER_SAVE.CENTRE_LETTRE, 'K') > 0  )  
    ORDER BY PANIER_SAVE.PANIER_SAVE_DATE DESC, PANIER_SAVE.PANIER_SAVE_NOM DESC
    je fais donc simplement MonDataSourceSql.SelectCommand = maRequeteCiDessus. Et j'obtiens l'erreur en haut de POST ?! Vient-elle du fait que j'affecte la requeter au controle SqlDataSource dans le page_load ???

  5. #5
    Membre Expert Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Par défaut
    pourtant ça semble juste...

    essaie d executer ça par code en utilisant OracleSqlConnection,OracleSqlCommand, etc

    si ca te retourne la meme erreur, faut voir du coté du forum Oracle..

  6. #6
    Membre averti Avatar de anikon
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2007
    Messages : 57
    Par défaut
    oui mais le problème si je fais comme tu dis, c'est pour la mise en forme du gridview dans Visual Studio 2005 !! Si je rempli le DataSourceId dans le code behind, visuellement je ne vois plus rien !!

  7. #7
    Membre averti Avatar de anikon
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2007
    Messages : 57
    Par défaut
    En fait, j'essai depuis hier de remplir mon gridview par code mais en fait c'est plus compliqué que prévu ? J'ai trouvé quelques messages non résolus à ce sujet et la je sèche, quelqu'un aurait-il un bon tuto ? Mon problème exact est que je dois absolument créer ma requete par code (ca c'est bon) maintenant je ne sais pas si il faut affecter cette requete à un sqldatasource existant ou en créer un par code ainsi que le gridview qui va avec... Bref je suis un peu perdu ...

  8. #8
    Membre Expert Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Par défaut
    essaie de remplir un DAtaset avec ta requete..

    et si ça marche tu peux lui dire de prendre le dataset comme source de données au GridView et le tour sera joué

  9. #9
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Tu as vérifié qu'il n'y a pas de tabulations dans ta requête ?
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  10. #10
    Membre averti Avatar de anikon
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2007
    Messages : 57
    Par défaut
    Oui oui pas de tablulation, la requete fonctionne parfaitement. Je ne sais juste pas quoi en faire pour remplir mon gridview... je test des choses sur le dataset mais j'avoue que c'est un concept assez récent pour moi étant à la base un développeur PHP. J'ai bien créer mon Dataset que j'ai nommer ds_panier.xsd, j'ai mes différents datatables dedans mais la encore pour ajouter des requetes SQL à un datable il faut qu'elles soient statiques !!! Hors je construit ma requete dynamiquement!! je ne sais pas non plus sur quoi je dois travailler dataset, datatable, dataadapter ?? étant donné que ma requete porte sur plusieurs tables ?!

  11. #11
    Membre Expert Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Par défaut
    Je t'ai pondu ça en vitesse (désolé c'est du VB)

    essaie de convertir en C#

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
            Dim ocnx As OracleConnection = New OracleConnection("TaConnectionString")
            Dim cmd As OracleCommand = ocnx.CreateCommand()
     
            cmd.CommandText = "Tarequete"
     
            Dim oTa As OracleDataAdapter = New OracleDataAdapter(cmd)
            Dim ds As DataSet = New DataSet()
     
            'rempli le dataset
            oTa.Fill(ds, "nom de ta table")
     
            GridView.DataSource = ds.Tables("nom de ta table")
            GridView.DataBind()

  12. #12
    Membre averti Avatar de anikon
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2007
    Messages : 57
    Par défaut
    Bon déjà merci pour le bout de code mais c'est bizare, le gridview ne se remplit pas mais le dataset SI ?!

    EN C# ca donne à peu près ca :

    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
    27
    //Connexion à la base
    OracleConnection oConnexion = new OracleConnection(ConfigurationManager.ConnectionStrings["cs"].ToString());
    oConnexion.Open();
     
    // CMD
    OracleCommand cmd = new OracleCommand( SQLSelectPanier() ); //SQLSelectPanier est la fonction qui me génere ma requete SQL
    cmd.Connection = oConnexion;
    cmd.CommandType = CommandType.Text;
     
    // OracleDataAdapter
    OracleDataAdapter oda_panier = new OracleDataAdapter(cmd);
     
    //DATASET
    DataSet ds_panier = new DataSet();
     
    oda_panier.Fill(ds_panier, "PANIER_SAVE");
     
    // Fermeture
    oConnexion.Dispose();
    oConnexion.Close();
     
    // Gridview
    gv_panierCentre.DataSource = ds_panier.Tables["PANIER_SAVE"];
    gv_panierCentre.DataBind();
     
    // --- TEST ---
    lb_mess_err.Text = "TEST DATA XML : "+ds_panier.GetXml();
    Voila, le gridview ne s'affiche pas MAIS grace à ma petite ligne de test en bas je peut voir que je récupère les bonnes données sous forme XML c'est donc l'affectation au gridview qui ne fonctionne pas mais pourquoi ?!

  13. #13
    Membre Expert Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Par défaut
    Publie la decaration de ta gridview avec toutes les propriétés...

  14. #14
    Membre averti Avatar de anikon
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2007
    Messages : 57
    Par défaut
    Mon gridview ressemblai à ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <asp:gridview ID="gv_panierCentre" Width="100%" runat="server" CellPadding="4" SkinID="gridviewSkin" OnSelectedIndexChanging="gv_panierCentre_SelectedIndexChanging" OnRowCommand="gv_panierCentre_RowCommand" AllowSorting="True" AutoGenerateColumns="true">
     
    </asp:gridview>
    Effectivement je n'avais pas pensé à ca mais apparement mon skinId me fait planter le gridview ?! Encore un autre problème !! de plus maintenant si je veux ajouter des boutons de sélection sur mon gridview je dois tout faire par code je suppose ?

  15. #15
    Membre Expert Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Par défaut
    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
    <asp:gridview ID="gv_panierCentre" Width="100%" runat="server" CellPadding="4" SkinID="gridviewSkin" OnSelectedIndexChanging="gv_panierCentre_SelectedIndexChanging" OnRowCommand="gv_panierCentre_RowCommand" AllowSorting="True" AutoGenerateColumns="false">
    <Columns>
    <asp:TemplateField>
    tu place n'importe quel control ici.. 
     
    <asp:Label id="label1" runat="server" Text="<%# Eval("Tonchamp") %>" />
    </asp:TemplateField>
     
    <asp:TemplateField>
    tu place n'importe quel control ici.. 
     
    <asp:Button id="btn1" runat="server"  Text="Toto" />
    </asp:TemplateField>
     
    </Columns>
     
    </asp:gridview>
    autrement ce que tu avais posté semble ok.. ton skin peut planter si tu as fait une erreur dans le skin autrement pas de raison qu'il plante.

  16. #16
    Membre averti Avatar de anikon
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2007
    Messages : 57
    Par défaut
    SI si apparement ca vient du fait que le skinId soit être défini à un moment précis de la compilation et je n'ai pas trouvé le bon évènement mais c'est plus ou moins secondaire. Je vais testé ton bout de code, je pense que ca fonctionne effectivement.

  17. #17
    Membre averti Avatar de anikon
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2007
    Messages : 57
    Par défaut
    J'ai légèrement modifié ton code, ca me donne :
    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
    <asp:gridview ID="gv_panierCentre" SkinID="gridviewSkin" Width="100%" runat="server" CellPadding="4" OnSelectedIndexChanging="gv_panierCentre_SelectedIndexChanging" OnRowCommand="gv_panierCentre_RowCommand" AllowSorting="True" AutoGenerateColumns="false">
        <Columns>        
            <asp:boundfield DataField="PANIER_SAVE_DATE" HeaderText="Date" SortExpression="PANIER_SAVE_DATE" />
            <asp:boundfield DataField="PANIER_SAVE_NOM" HeaderText="Nom du panier" ReadOnly="True"
                SortExpression="PANIER_SAVE_NOM" />
            <asp:boundfield DataField="CENTRE_LETTRE" HeaderText="Centre" SortExpression="CENTRE_LETTRE" />
            <asp:boundfield DataField="PANIER_SAVE_MONTANT_HT" HeaderText="Montant (Ht)" SortExpression="PANIER_SAVE_MONTANT_HT">
                <itemstyle HorizontalAlign="Right" />
            </asp:boundfield>
     
            <asp:commandfield ButtonType="Button" ShowSelectButton="True">
                <itemstyle HorizontalAlign="Center" />
            </asp:commandfield>
     
            <asp:buttonfield ButtonType="Button" Text="Supprimer" CommandName="SupprPanier">
                <itemstyle HorizontalAlign="Center" />
            </asp:buttonfield>
     
        </Columns>
    </asp:gridview>
    Et la tout fonctionne, mes boutons, mon skin... SUPER !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. requete sql UPDATE sqldatasource
    Par mapmip dans le forum ASP.NET
    Réponses: 3
    Dernier message: 03/08/2010, 10h40
  2. Réponses: 8
    Dernier message: 02/12/2008, 22h59
  3. requete dans sqlDataSource
    Par randriamanana dans le forum ASP.NET
    Réponses: 2
    Dernier message: 01/09/2008, 11h47
  4. Réponses: 3
    Dernier message: 17/08/2007, 11h54
  5. [CR11] comment créer une requete manuelle ?
    Par c_moi_c_moi dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 14/05/2006, 22h35

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