Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2084 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Résolu] [vb.net] Requête SQL

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] [vb.net] Requête SQL

n°1113710
steppenwol​f
Posté le 09-06-2005 à 11:16:33  profilanswer
 

Salut !  
 
J'ai un soucis avec une requête SQL, voici mon code :  
 

Code :
  1. ' On récupère la hauteur sélectionnée dans la combobox
  2. Dim ht As Double
  3. ht = CDbl(cmbBoxHauteur.SelectedItem)
  4. ht = Math.Round(ht, 2)
  5. ' On recherche les faisceaux disponibles pour cette hauteur
  6. Dim MyConnexion As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & _
  7. "C:\bd.mdb" )
  8. Dim Mycommand As OleDbCommand = MyConnexion.CreateCommand()
  9. Mycommand.CommandText = "SELECT DISTINCT faisceau FROM produit WHERE hauteur=" & ht & ""
  10. MyConnexion.Open()
  11. Dim myReader As OleDbDataReader = Mycommand.ExecuteReader()
  12. Do While myReader.Read()
  13. cmbBoxFaisceau.Items.Add(myReader.GetInt32(0))
  14. Loop
  15. myReader.Close()
  16. MyConnexion.Close()

 
 
 
Je pense qu'il s'agit d'un problème au niveau de la variable ht qui représente la hauteur ! Dans la base de données, hauteur est du type réel.  
L'erreur affichée est :  
Une exception non gérée du type 'System.Data.OleDb.OleDbException' s'est produite dans system.data.dll
 
Merci d'avance pour vos réponses...  
 
Alex


Message édité par steppenwolf le 09-06-2005 à 16:57:15
mood
Publicité
Posté le 09-06-2005 à 11:16:33  profilanswer
 

n°1113774
cesarr89
Posté le 09-06-2005 à 11:58:45  profilanswer
 

http://support.microsoft.com/defau [...] fr;f313547
Je pense que ca peut t'aider.


---------------
!== Force et honneur ==!
n°1113797
steppenwol​f
Posté le 09-06-2005 à 12:12:34  profilanswer
 

Merci pour ta réponse !
Ca m'aide moyennement car je sais pourquoi il y a cette erreur, c'est simplement sur la clause WHERE où je dois comparer 2 réels... Et je ne vois pas comment résoudre ça !
 
Ca doit etre un pb de syntaxe !
 

n°1113798
FlorentG
Unité de Masse
Posté le 09-06-2005 à 12:12:51  profilanswer
 

Envoi la stacktrace de l'exception, ce serait gentil ;)


---------------
last.fmflickr
n°1113800
steppenwol​f
Posté le 09-06-2005 à 12:15:06  profilanswer
 

stacktrace ???

n°1113804
steppenwol​f
Posté le 09-06-2005 à 12:18:29  profilanswer
 

Ca doit être ca :  
Exception non gérée : System.Data.OleDb.OleDbException: Erreur de syntaxe (virgule) dans l'expression 'hauteur=1,1'.

n°1113806
FlorentG
Unité de Masse
Posté le 09-06-2005 à 12:19:48  profilanswer
 

Ah ben voilà :D


---------------
last.fmflickr
n°1113807
FlorentG
Unité de Masse
Posté le 09-06-2005 à 12:20:05  profilanswer
 

En fait, c'est pas comme ça qu'on fait les requêtes. 2 sec, je rédige la solution


---------------
last.fmflickr
n°1113809
steppenwol​f
Posté le 09-06-2005 à 12:21:19  profilanswer
 

ok merci

n°1113816
FlorentG
Unité de Masse
Posté le 09-06-2005 à 12:24:02  profilanswer
 

Donc, en .NET, on ne fait jamais, mais alors jamais ça :

Mycommand.CommandText = "SELECT DISTINCT faisceau FROM produit WHERE hauteur=" & ht & ""  


Ce qu'il faut, c'est utiliser les paramètres :

Mycommand.CommandText = "SELECT DISTINCT faisceau FROM produit WHERE hauteur=?"
 
Dim HauteurParameter As New System.Data.OleDb.OleDbParameter("hauteur", System.Data.OleDb.OleDbType.Double, 0, "hauteur" )
MyCommand.Parameters.Add(HauteurParameter)
 
HauteurParameter.Value = ht
 
MyConnexion.Open()  
 
[...]


---------------
last.fmflickr
mood
Publicité
Posté le 09-06-2005 à 12:24:02  profilanswer
 

n°1113818
FlorentG
Unité de Masse
Posté le 09-06-2005 à 12:24:54  profilanswer
 

Parce que là y'a un problème de séparateur décimal. Les paramètres gèrent ça tout seul. Ils s'assurent aussi que y'a pas de valeur erronée.


---------------
last.fmflickr
n°1113823
steppenwol​f
Posté le 09-06-2005 à 12:28:55  profilanswer
 

Alors là, j'aurais pu chercher un moment... Je viens de tester et ca marche parfaitement !
Merci beaucoup !

n°1607981
gustavo3
Posté le 04-09-2007 à 11:33:49  profilanswer
 

bonjour j'ai un petit pb avec vb voici on code  
 
 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim str As String
        Dim Myconnection As OleDbConnection = New OleDbConnection("provider=oraoledb.oracle.1;userid=scott;password=tiger; database=ora" )
        str = "SELECT * FROM DEPT"
        MyCommand = New OleDbCommand(str, Myconnection)
        Dim a As String
        Myconnection.Open()
        Dim myReader As OleDbDataReader = MyCommand.ExecuteReader()
        Do While myReader.Read()
            a = myReader(0)
        Loop
        myReader.Close()
        Myconnection.Close()
    End Sub
End Class
sa compile parfaitemant mais ensuite sa me donne ceci
""Une exception non gérée du type 'System.Data.OleDb.OleDbException' s'est produite dans system.data.dll""
aidez moi svp merci d'avance


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Résolu] [vb.net] Requête SQL

 

Sujets relatifs
[Résolu] Désactiver la notification d'exécution de requête SQL[RESOLU] Requete SQL particulière
Message d'erreur - requete SQL (resolu)Sauver plusieurs éléments de ma requête SQL dans un vecteur [RESOLU]
[Résolu] Problème ASP/SQL: erreur dans la requête[Resolu] JDBC => Requete SQL (Delete)
[RESOLU] problème de condition sur un requête SQL[VBA Excel] Erreur 424 sur une requete sql Access dans excel [Resolu]
[SQL] [Résolu] Requete avec COUNT et GROUP BY[DELPHI] Requete SQL ? [RESOLU]
Plus de sujets relatifs à : [Résolu] [vb.net] Requête SQL


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR