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

Dotnet Discussion :

Problème requête SQL


Sujet :

Dotnet

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Enseignant
    Inscrit en
    Décembre 2006
    Messages
    324
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 324
    Par défaut Problème requête SQL
    Bonjour à tous.
    J' ai un petit soucis avec une requête SQL.
    Si je ne mets pas de variable , j'ai bien le retour de l'interrogation, avec ce qui suit.
    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Dim strdateSys2 As String
            strdateSys2 = CStr(Mid(Format(Date.Now, "d/MM/yyyy"), 1, 10))
     
            cmd.CommandText = "SELECT COUNT(*) FROM T_Affaires where DateFin = '13/02/2021'"
    Avec ma variable = problème pas de retour.
    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Dim strdateSys2 As String
            strdateSys2 = CStr(Mid(Format(Date.Now, "d/MM/yyyy"), 1, 10))
     
            'cmd.CommandText = "SELECT COUNT(*) FROM T_Affaires where DateFin = " & strdateSys2
    Précision dans la base j'ai en format texte 13/02/2021. Si je fais un point d'arrêt le retour de strdateSys2 est bien 13/02/2021
    Je cherche depuis plus d'une demis heure, mais je bloque.???????????????
    Si quelqu'un pouvait me mettre sur la piste.
    Merci par avance

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    une date est censé être au format date dans la base de données
    une date peut avoir une représentation sous forme de string, cette représentation par défaut peut varier entre le programme et la base de données, et peut varier d'un pc à l'autre
    aussi on préfère faire transiter une date du programme à la base de données en la laissant au format date, ainsi il n'y a pas de conversion vu que ca reste au format binaire date (8 octets généralement), et donc pas d'erreur de conversion
    (si le programme parle en jj/mm et que la base attend mm/jj, ou alors qu'un windows est paramétré en jj/mm et un autre en mm/jj)
    LeCommand.Parameters.Add() permet d'ajouter un paramètre et sa valeur (genre de variable nommée dans la requete)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre éclairé
    Profil pro
    Enseignant
    Inscrit en
    Décembre 2006
    Messages
    324
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 324
    Par défaut
    Merci.
    C'est ce que j'avais pensé.
    Bref j'ai fait autrement, directement sur le datagridview.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim rowCount2 = DataGridView1.Rows.Cast(Of DataGridViewRow)().Count(Function(row) (row.Cells(7).Value) < strdateSys2)
                    TextBox2.Text = rowCount2 - 1
    Cela fonctionne donc ça va me va.
    Merci encore

  4. #4
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Ce n'est pas de cette façon qu'il faut procéder : si votre table contient 1 milliard de lignes, vous aller toutes les charger dans le datagrid pour ensuite compter ligne à ligne le nombre qui correspond à ce que vous recherchez ?

    J'espère que vous n'hébergez pas votre application dans le Cloud !

    Faites comme Pol63 vous a indiqué.

    Utilisez une requête paramétrée.

    Ainsi votre requête SQL ne retournera QUE ce que vous voulez, ce sera bien plus efficient.

    https://webman.developpez.com/articl...ameter/csharp/

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

Discussions similaires

  1. Problème requête SQL
    Par mandaillou dans le forum Langage SQL
    Réponses: 15
    Dernier message: 03/10/2005, 12h37
  2. Problème requête SQL dans page ASP
    Par rocs dans le forum ASP
    Réponses: 14
    Dernier message: 26/07/2005, 16h38
  3. problème requête sql
    Par psychoBob dans le forum Langage SQL
    Réponses: 1
    Dernier message: 10/07/2005, 18h50
  4. problème requête sql
    Par perfectdams dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 21/06/2005, 19h09
  5. Réponses: 8
    Dernier message: 23/10/2003, 17h22

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