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

VB.NET Discussion :

selectionner a partir du deuxieme ligne


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Femme Profil pro
    Chargé d'affaire
    Inscrit en
    Mai 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Argentine

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2018
    Messages : 15
    Points : 11
    Points
    11
    Par défaut selectionner a partir du deuxieme ligne
    Bonjour tout le monde
    Svp si vous pouvez a resoudre ce probleme
    Comment faire pour selectionner from ma Table1 a partir du deuxieme ligne et j'ignore la ptemiere ligne
    Avec un champs ( id) de type INT non auto number
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ats.selectcommand= New sqlcommand(" Select distinct ( product_ name ) from Table1", con)
    Je veux selectionner product_ name toujours a partir du deuxieme ligne
    Merci d'avance pour l'aide
    Beatrice

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    si tu connais l'id de la ligne à ne pas sélectionner ajouter WHERE id != valeur
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre à l'essai
    Femme Profil pro
    Chargé d'affaire
    Inscrit en
    Mai 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Argentine

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2018
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    si tu connais l'id de la ligne à ne pas sélectionner ajouter WHERE id != valeur
    Merci beaucoup pol63
    Mais peut etre si je ferai comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ats.selectcommand= New sqlcommand(" Select distinct ( product_ name ) from Table1 WHERE id = 2", con)
    Comment faire si ID par exemple commence par ( PRO-0001 ) ou commence par autre facon
    Cordialement
    BEATRICE

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    Dans une table de base de données la clé primaire doit être non significatif pour l'application et idéalement un entier auto incrément (un guide peut convenir)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre à l'essai
    Femme Profil pro
    Chargé d'affaire
    Inscrit en
    Mai 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Argentine

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2018
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    Dans une table de base de données la clé primaire doit être non significatif pour l'application et idéalement un entier auto incrément (un guide peut convenir)
    Merci pol63 .. vous avez bien raison .. toutes mes excuses car j'ai mal exprime .. j'ai voulu dire si je mis id = 2 .. en cas de suppression et modification ca peut que le numero id = 2 va changer ..
    Merci d'avance pol63
    BEA

  6. #6
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    Bonjour,

    Je crois avoir la solution ...

    Vu que les id sont ordonnés (sauf erreur de ma part), l'enregistrement à éviter est toujours celui qui a le plus petit Id.
    La requête SELECT MIN(Id) FROM Table1; donne ce plus petit identifiant.
    La solution consiste donc à écrire une requête qui prends tous les enregistrements, SAUF celui dont l'Id est donné par : SELECT MIN(Id) FROM Table1;
    Soit :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT Id, (Product_ Name) FROM Table1
    WHERE Id NOT IN (SELECT MIN(Id) FROM Table1);

    J'espère que ça conviendra ...

  7. #7
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 757
    Points : 10 697
    Points
    10 697
    Billets dans le blog
    21
    Par défaut
    Bonjour,

    Quel est la base de données que vous utilisez ? Il peut y avoir une clause pour faire cela facilement. Par exemple, avec une version récente de SQL Server, il est posible d'utiliser la clause OFFSET pour spécifier le nombre d'enregistrement que l'on souhaite ignorer.

    Sinon, il existe en SQL des clauses de fenêtrages, qui permettent d'obtenir la même chose, mais avec une requête plus compliquée.
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  8. #8
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    Bonjour François,

    J'ignore de quel SGBD il s'agit, je ne crois pas que Beatrice l'ai mentionné.
    Mais personnellement, quand je dois produire du code SQL, je m'en tiens au pus élémentaire qui soit, le langage SQL du début des années '80, directement dérivé de l'algèbre relationnelle inventée en 1970 par E. F. Codd. Ne crois pas que je tente de jeter de la poudre aux yeux, simplement tous les SGBD actuels "comprennent" encore ce langage.
    Par contre, si j'utilisais une clause OFFSET d'un SQL Server récent, il est possible que ma solution ne fonctionne pas sous Access, ou sous MySQL, ou sous un autre ... .
    En fait, j'espère que ma solution basique conviendra à Beatrice.

    Bonne soirée,

  9. #9
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 757
    Points : 10 697
    Points
    10 697
    Billets dans le blog
    21
    Par défaut
    Citation Envoyé par Phil Rob Voir le message
    Mais personnellement, quand je dois produire du code SQL, je m'en tiens au pus élémentaire qui soit, le langage SQL du début des années '80, directement dérivé de l'algèbre relationnelle inventée en 1970 par E. F. Codd.
    Dans ce cas, les fonctions de fenêtrages sont parfaites. Normées en 2003, les bons SGBD les connaissent.

    Il serait dommage de ne pas profiter des ajouts des normes successives, surtout quand elles ont 15 ans (des lustres en informatique !).
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  10. #10
    Membre à l'essai
    Femme Profil pro
    Chargé d'affaire
    Inscrit en
    Mai 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Argentine

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2018
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par François DORIN Voir le message
    Bonjour,

    Quel est la base de données que vous utilisez ? Il peut y avoir une clause pour faire cela facilement. Par exemple, avec une version récente de SQL Server, il est posible d'utiliser la clause OFFSET pour spécifier le nombre d'enregistrement que l'on souhaite ignorer.

    Sinon, il existe en SQL des clauses de fenêtrages, qui permettent d'obtenir la même chose, mais avec une requête plus compliquée.
    Hello Francois DORIN
    J'ai une base de donnees SQL server 2014
    Merci d'avance pour l'intervention
    BEA

  11. #11
    Membre à l'essai
    Femme Profil pro
    Chargé d'affaire
    Inscrit en
    Mai 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Argentine

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2018
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    Merci Phil Rob pour l'aide
    Mais malheureusemnet j'ai eu une erreur : incorrect syntax near Table1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        adp_Forget.SelectCommand = New SqlCommand("SELECT ID, (product_name) FROM Table1 WHERE ID NOT IN (SELECT MIN(ID) FROM Table1 ", con)
    Merci infiniment
    BEA

  12. #12
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2004
    Messages
    304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 304
    Points : 405
    Points
    405
    Par défaut
    il faut fermer la parenthèse à la fin de ta requête WHERE ID NOT IN (SELECT MIN(ID) FROM Table1 )
    S'il n'y a pas de Solution, c'est qu'il n'y a pas de Problème.
    ----------------------------------------------------------------------------------------
    Pour se protéger, un bon préservatif pour votre PC : AntiVir et SpyBot - Search & Destroy

  13. #13
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    Bonjour Beatrice,

    Il te manque au moins une parenthèse au bout de la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    adp_Forget.SelectCommand = New SqlCommand("SELECT ID, (product_name) FROM Table1 WHERE ID NOT IN (SELECT MIN(ID) FROM Table1) ", con)
    Bon travail,

  14. #14
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    OK François, là je suis bien d'accord avec toi.
    Il faudra que je rajeunisse mes approches de SQL ..., encore que ce n'est que pour répondre à quelques questions de ce forum ...
    Mais bon, si Beatrice doit attendre ma reconversion, c'est pas demain qu'elle sera aidée.
    Pourquoi ne lui proposerais-tu pas une solution ? (J'en apprendrais aussi

  15. #15
    Membre à l'essai
    Femme Profil pro
    Chargé d'affaire
    Inscrit en
    Mai 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Argentine

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2018
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    Impeccable solution Phil Rob
    Ca fonctionne tres bien avec cette parenthese ..merci
    On attendant la facon de Francois DORIN pour apprendre des divers solutions
    Merci aussi .. Zehle
    BEA

  16. #16
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 757
    Points : 10 697
    Points
    10 697
    Billets dans le blog
    21
    Par défaut
    Citation Envoyé par Phil Rob Voir le message
    Pourquoi ne lui proposerais-tu pas une solution ? (J'en apprendrais aussi
    En général, j'essai plutôt de guider que de donner directement la réponse
    Donne un poisson à un homme, tu le nourris pour un jour. Apprends lui à pêcher, il se nourrira toute sa vie (proverbe chinois).

    Quoiqu'il en soit, voici un petit exemple de code SQL montrant les deux fonctionnalités dont je parlais en oeuvre :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    DECLARE @Table TABLE (id INT);
     
    INSERT INTO @Table VALUES (1), (2), (3), (4), (5), (999), (20);
     
    -- Variante propre à SQL Server (d'autres SGBD peuvent avoir des fonctionnalités similaires mais avec des syntaxes différentes)
    SELECT * FROM @Table ORDER BY id OFFSET 1 ROWS;
     
    -- Variante respectant la norme SQL 2003 : avec fonction de fenêtrage
    WITH CTE AS (
    	SELECT id, ROW_NUMBER() OVER(ORDER BY id) AS row_number FROM @Table
    )
    SELECT id FROM CTE WHERE row_number >= 2;
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  17. #17
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    Bonjour François,

    Tout d’abord, je te remercie d’avoir bien voulu produire quelques codes alors que ce n’est pas ton mode opératoire habituel.

    Malheureusement ces codes ne me motivent pas à entamer une remise à niveau de mes connaissances en SQL.
    En effet, j'ai testé tes codes sans succès sous Access 2013 et sous SQL via SQLExpress (c’est tout ce dont je dispose pour l’instant). Des codes comme OFFSET ou OVER ne sont pas "compris" de ces systèmes, ROW_NUMBER non plus.

    Il s’agit bien là des aléas que je crains avec des instructions et des opérateurs récents et trop souvent dépendants d’un SGBD spécifique : OFFSET est connu de MySQL, OVER serait connu de certaines versions d’Oracle, …

    Mon code archaïque passe partout …

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT IdEtud, NomEtud FROM TEtudiants
    WHERE IdEtud NOT IN (SELECT MIN(IdEtud) FROM  TEtudiants);

    Encore merci, car ces échanges m’auront au moins obligé à reconsidérer ma pratique un moment.

    Cordialement,

  18. #18
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 757
    Points : 10 697
    Points
    10 697
    Billets dans le blog
    21
    Par défaut
    Citation Envoyé par Phil Rob Voir le message
    En effet, j'ai testé tes codes sans succès sous Access 2013 et sous SQL via SQLExpress (c’est tout ce dont je dispose pour l’instant). Des codes comme OFFSET ou OVER ne sont pas "compris" de ces systèmes, ROW_NUMBER non plus.
    Au sujet de la clause OFFSET, pour Access, cela ne m'étonne pas.

    Par contre, pour SQL Express, il doit s'agir d'une vieille version. Cette syntaxe a été introduit avec la version 2012.

    Citation Envoyé par Phil Rob Voir le message
    Il s’agit bien là des aléas que je crains avec des instructions et des opérateurs récents et trop souvent dépendants d’un SGBD spécifique : OFFSET est connu de MySQL, OVER serait connu de certaines versions d’Oracle, …
    Le premier exemple effectivement (OFFSET) dépend du SGBD. Le second (OVER) ne devrait pas (s'il s'agit d'un SGBD "récent" supportant la norme SQL 2003).

    Par exemple, les fonctions de fenêtrages sont comprises par SQL Server depuis sa version 2008. Postgresql les supportent depuis 2009. Oracle depuis très longtemps aussi me semble-t-il. Il n'y a bien que MySQL pour avoir ajouté le support cette année d'une norme vieille de 16 ans avec la version 8 !

    Citation Envoyé par Phil Rob Voir le message
    Mon code archaïque passe partout …
    Mais montre vite ses limites. Impossible d'aller au délà de 1 ligne Si on veut sauter plus de ligne (par exemple, pour mettre en place un système de pagination), alors c'est impossible.
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  19. #19
    Membre à l'essai
    Femme Profil pro
    Chargé d'affaire
    Inscrit en
    Mai 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Argentine

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2018
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    Merci Phil Rob
    Merci François DORIN
    C'est bien resolu avec le code de Phil Rob
    Mes respects
    BEA

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

Discussions similaires

  1. Comment executer un script SQL a partir de la ligne de commande ?
    Par lassaad83 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/08/2007, 11h13
  2. Afficher à partir de la ligne... ?
    Par byloute dans le forum Linux
    Réponses: 14
    Dernier message: 28/09/2005, 01h08
  3. lancer une mdb a partir d'une ligne de commande
    Par dpie dans le forum Access
    Réponses: 5
    Dernier message: 30/11/2004, 15h01
  4. Effacer le contenu d'un fichier a partir d'une ligne
    Par localhost dans le forum Linux
    Réponses: 3
    Dernier message: 04/04/2004, 04h47
  5. Réponses: 18
    Dernier message: 08/02/2004, 22h38

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