[vb.net] Requête SQL

Résolu
cs_steppenwolf Messages postés 84 Date d'inscription jeudi 18 septembre 2003 Statut Membre Dernière intervention 29 décembre 2006 - 9 juin 2005 à 10:27
cs_steppenwolf Messages postés 84 Date d'inscription jeudi 18 septembre 2003 Statut Membre Dernière intervention 29 décembre 2006 - 9 juin 2005 à 13:10
Salut !

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

' On récupère la hauteur sélectionnée dans la combobox


Dim ht As Double


ht = CDbl(cmbBoxHauteur.SelectedItem)


ht = Math.Round(ht, 2)


' On recherche les faisceaux disponibles pour cette hauteur


Dim MyConnexion As OleDbConnection = New
OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & _


"C:\bd.mdb")


Dim Mycommand As
OleDbCommand = MyConnexion.CreateCommand()


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


MyConnexion.Open()


Dim myReader As
OleDbDataReader = Mycommand.ExecuteReader()


Do While
myReader.Read()


cmbBoxFaisceau.Items.Add(myReader.GetInt32(0))


Loop


myReader.Close()


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

5 réponses

cs_steppenwolf Messages postés 84 Date d'inscription jeudi 18 septembre 2003 Statut Membre Dernière intervention 29 décembre 2006
9 juin 2005 à 13:10
Au fait, j'ai la solution à mon problème :

Dim ht
As
Double


ht =
CDbl(cmbBoxHauteur.SelectedItem)


ht = Math.Round(ht, 2)


Dim MyConnexion
As OleDbConnection =
New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & _


"C:\bd.mdb")



Dim Mycommand
As OleDbCommand = MyConnexion.CreateCommand()


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()



Dim myReader
As OleDbDataReader = Mycommand.ExecuteReader()



Do
While myReader.Read()


cmbBoxFaisceau.Items.Add(myReader.GetInt32(0))



Loop


myReader.Close()


MyConnexion.Close()

Et voila le travail...

A+
(merci à FlorentG sur http://forum.hardware.fr/ qui m'a donné la solution)
3
cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 4
9 juin 2005 à 10:32
Salut,

as-tu essayé de mettre ta variable ht entre ' :

"SELECT DISTINCT faisceau FROM produit WHERE hauteur='" & ht & "'"

De plpus je ne comprend pas pourquoi tu ajoute & "" à la fin?

@+
0
cs_steppenwolf Messages postés 84 Date d'inscription jeudi 18 septembre 2003 Statut Membre Dernière intervention 29 décembre 2006
9 juin 2005 à 10:37
je viens d'essayer ta solution ("SELECT DISTINCT faisceau FROM produit WHERE hauteur='" & ht & "'") mais tj la meme erreur !
Sans (& "" à la fin) à la fin ca fait une erreur de syntaxe !
0
cs_liquide Messages postés 1016 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 24 juin 2008
9 juin 2005 à 11:33
je ne connaissais pas le distinct, que veut il dire ?

Bonne prog, [mailto:liquide_vaisselle_76@hotmail.fr liquide_vaisselle_76@hotmail.fr]
liquide (Membre "Liquide-Fundation" -- tout ce qui peut etre bu est interdit -- les alcolo sont mals , moi le 1er&n
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_steppenwolf Messages postés 84 Date d'inscription jeudi 18 septembre 2003 Statut Membre Dernière intervention 29 décembre 2006
9 juin 2005 à 13:05
DISTINCT permet de sélectionner les éléments et de supprimer les doublons !
0
Rejoignez-nous