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

Windows Forms Discussion :

Vérifier une requete sql en vb.net


Sujet :

Windows Forms

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 17
    Par défaut Vérifier une requete sql en vb.net
    Bonjour,

    Je veux savoir comment en vb.net vérifier le resultat de ma requete sql :

    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
    Dim c_Cnn As ADODB.Connection 
     
     
    Private Sub frm_Stat_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
    c_Cnn = New ADODB.Connection 
    c_Cnn.ConnectionString = "Provider=SQLOLEDB;Integrated Security=SSPI;Persist Security Info=False; Initial Catalog=Gestion_Informatique;Data Source=FAB\instancesql" 
    c_Cnn.Open() 
     
     
     
     
    Dim l_Rds As ADODB.RecordsetClass 
    l_Rds = New ADODB.RecordsetClass 
    l_Rds.Open("select SUM(Duree) As TotalSaFM from Appels where NomPrenomCIS = 'CIS' and NomSociete = 'Societe'", c_Cnn) 
    tbx_SaFM.Text = l_Rds.Fields("TotalSaFM").Value
    Je demande la duree totale par societe pour un CIS et je l'envoi dans mon textbox, mais le problème est qu'un cis nest pas forcement intervenu dans cette societe et donc ma somme est nulle, j'aimerais avant d'envoyer le résultat savoir si ma somme est nulle car si c'est le cas ca me plante tout.

    Merci.

  2. #2
    Membre Expert Avatar de lola06
    Femme Profil pro
    Consultante en Business Intelligence
    Inscrit en
    Avril 2007
    Messages
    1 316
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultante en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 316
    Par défaut
    Bonjour,

    Pourquoi tu ne ferais pas quequechose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if Not (l_Rds.Fields("TotalSaFM").Value = 0) then
    tbx_SaFM.Text = l_Rds.Fields("TotalSaFM").Value 
    else
    tbx_SaFM.Text = "Pas de CIS"
    end if
    P.S: Penses à mettre ton code entre les balises [code.] et [/code]

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 17
    Par défaut re
    Merci de ta réponse mais ca ne fonctionne pas. Je n'ai rien dans ma base de donnée donc il devrais afficher "pas de cis" dans tous les textbox. mais quand je lance la requete visual studio me dit :
    L'opérateur '=' n'est pas défini pour type 'DBNULL' et type 'Integer'.
    Merci

  4. #4
    Membre Expert Avatar de lola06
    Femme Profil pro
    Consultante en Business Intelligence
    Inscrit en
    Avril 2007
    Messages
    1 316
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultante en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 316
    Par défaut
    Il faut que tu adaptes, j'ai écrit ça sans vérifier la syntaxe, comme un algo...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (l_Rds.Fields("TotalSaFM").Value > 0) then
    tbx_SaFM.Text = l_Rds.Fields("TotalSaFM").Value 
    else
    tbx_SaFM.Text = "Pas de CIS"
    end if
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if Not (l_Rds.Fields("TotalSaFM").Value is null) then
    tbx_SaFM.Text = l_Rds.Fields("TotalSaFM").Value 
    else
    tbx_SaFM.Text = "Pas de CIS"
    end if

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 17
    Par défaut re
    Désolé de faire le boulet, je connais pas trop le language et quand je met is null ca me le souligne en bleu il le prends pas. Et quand je met < ca me fait pareil que egual.

  6. #6
    Membre Expert Avatar de lola06
    Femme Profil pro
    Consultante en Business Intelligence
    Inscrit en
    Avril 2007
    Messages
    1 316
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultante en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 316
    Par défaut
    Si tu prends ton code du début et que tu l'exécute en mode debuggage avec un point d'arret sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tbx_SaFM.Text = l_Rds.Fields("TotalSaFM).Value
    Qu'est ce qu'il te met comme valeurs ?

    Sinon essaye d'utiliser ce code, en fait j'utilise les DataReader à la place des RecordSet.
    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
    28
     
    Dim myConnection As Data.SqlClient.SqlConnection
    Dim myCommand As Data.SqlClient.SqlCommand
    Dim myDataReader As Data.SqlClient.SqlDataReader
    Dim Sum_SaFm As Integer
     
    myConnection = New Data.SqlClient.SqlConnection
    myConnection.ConnectionString = "Provider=SQLOLEDB;Integrated Security=SSPI;Persist Security Info=False; Initial Catalog=Gestion_Informatique;Data Source=FAB\instancesql"
    myCommand = New Data.SqlClient.SqlCommand("select SUM(Duree) As TotalSaFM from Appels where NomPrenomCIS = @NomPrenomCIS and NomSociete = @NomSociete", myConnection)
     
    myCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@NomPrenomCIS", Data.SqlDbType.NVarChar, 50))
    myCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@NomSociete ", Data.SqlDbType.NVarChar, 50))
     
    myCommand.Parameters("@NomPrenomCIS").Value = "CIS"
    myCommand.Parameters("@NomSociete").Value = "Societe"
     
    myConnection.Open()
    myDataReader = myCommand.ExecuteReader()
    Do Until (Not myDataReader.Read())
    Sum_SaFm = myDataReader("TotalSaFM")
    Loop
    myDataReader.Close()
    myConnection.Close()
    If (Sum_SaFm > 0) Then
    tbx_SaFM.Text = Sum_SaFm.ToString()
    Else
    tbx_SaFM.Text = "Pas de CIS"
    End If

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 17
    Par défaut re
    Dans il me met "".

  8. #8
    Membre Expert Avatar de lola06
    Femme Profil pro
    Consultante en Business Intelligence
    Inscrit en
    Avril 2007
    Messages
    1 316
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultante en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 316
    Par défaut
    C'est normal lors du debuggage, car tu n'assignes pas encore de valeur à tbx_SaFM.Text. Regarde plutôt les autres variables.
    As-tu essayé de mettre en place ce que je t'ai envoyé (en l'adaptant bien sûr) ?

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 17
    Par défaut re
    ouai j'ai essayer de mettre ce que tu m'a donné, mais il ne veut pas de ma chaine de connexion, je ne sais pas quoi mettre à la place. il me dit que le mot clé provider n'est pas correct.

    Mais dans tous les cas j'aimerais que mes connexions et mes requetes ne changent pas de syntaxe car dans toute l'appli c'est avec adodb et j'aimerais que mes collègues puissent la modifier facilement.

    merci

  10. #10
    Membre Expert Avatar de lola06
    Femme Profil pro
    Consultante en Business Intelligence
    Inscrit en
    Avril 2007
    Messages
    1 316
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultante en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 316
    Par défaut
    Tu utilises quoi pour developper ?
    Si c'est Visual Studio, je te conseille de créer une chaine de connection dans ton web.config :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <addname="ConnectTO_DB"connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Tutorial.MDF;Integrated Security=True;User Instance=True"providerName="System.Data.SqlClient"/>
    
    Voici un exemple de ta chaine de connection, que tu dois adapter à ton cas. Que tu appelles avec la méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    myConnection.ConnectionString = ConfigurationManager.ConnectionStrings("ConnectTO_DB").ConnectionString
    Sinon pour ta chaine de connection, je ne connais pas la syntaxe exacte. Il faut que tu regardes dans des codes sources.

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 17
    Par défaut
    Merci pour ton aide en fait c'etais tout con, j'ai trouvé, il fallais que je rajoute :
    à la fin de mon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tbx_SaFM.Text = l_Rds.Fields("TotalSaFM").Value

  12. #12
    Membre Expert Avatar de lola06
    Femme Profil pro
    Consultante en Business Intelligence
    Inscrit en
    Avril 2007
    Messages
    1 316
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultante en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 316
    Par défaut
    Ok d'accord, n'oublie pas de mettre la discussion en résolu.

    Pour ce qui est de ta requête, essaye de voir si tu ne peux pas la gérer avec des paramètres, ton code serait plus sécurisé.

    Pour la connectionstring, essaye ce dont je t'ai parlé, si tu dois utiliser souvent ta connection c'est quand même plus pratique.

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

Discussions similaires

  1. [Débutant] [VB.NET] envoi de la date dans une requete SQL via ADO.NET
    Par yassine-art dans le forum ADO.NET
    Réponses: 2
    Dernier message: 28/04/2012, 13h08
  2. division dans une requete sql sous asp.net
    Par nlm_look dans le forum ASP.NET
    Réponses: 3
    Dernier message: 28/07/2010, 11h05
  3. Réponses: 1
    Dernier message: 06/06/2006, 16h51
  4. [VB.Net] inserer un champs bytes dans une requete sql
    Par flyer_ dans le forum Windows Forms
    Réponses: 2
    Dernier message: 12/05/2006, 09h56
  5. [VB.NET] Remplir une ComboBox avec une requete sql
    Par graphicsxp dans le forum Windows Forms
    Réponses: 6
    Dernier message: 22/03/2005, 15h29

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