DataSet() peut-il filtrer sur un Numérique ?

miniheli Messages postés 18 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 30 juillet 2009 - 18 nov. 2007 à 11:39
miniheli Messages postés 18 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 30 juillet 2009 - 18 nov. 2007 à 13:07
Bonjour à tous,

Le problème se situe lorsque je clique sur le Button "Select Critère".

Voilà, lorsque je souhaite sélectionner une valeur Numérique dans le champ NUMERO_CLIENT de ma table EXPORT, j'ai un message d'erreur qui me dit "Type de données incompatible dans l'expression du critère." , sur la ligne da.Fill(ds, "mytable") de ma Sub Button1_Click.

Par contre, si je souhaite sélectionner une valeur Texte dans le champ NOM_CLIENT de ma table EXPORT, tout ce passe bien :
Si je remplace

where [
NUMERO_CLIENT
] = '4'"
par
where [
NOM_CLIENT
] = 'MAGUET'"





Je ne sais pas comment lui faire accepter de sélectionner un chiffre.

Voici le code de ma mini appli.

Merci.

Guillaume.
<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>






Imports
System.Data
Imports System.Data.OleDb
PublicClass Modèle_Enfant





Dim
Connexion AsString
Dim ConnexionOLE AsNew OleDbConnection()
Dim da As OleDbDataAdapter
Dim ds As DataSet
Dim dv As DataView
Dim cb As OleDbCommandBuilder





Private

Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Load





Button1.Text = "Select Critère"
AfficheTout()





End

Sub






Public

Sub AfficheTout()





Connexion = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = C:\\Adfs\dfs\Partage\Data Manager\ARTICLES\Articles.mdb"
ConnexionOLE.ConnectionString = Connexion
ConnexionOLE.Open()
da = New OleDbDataAdapter("Select NOM_CLIENT , NUMERO_CLIENT from EXPORT", ConnexionOLE)
ds = New DataSet()
da.Fill(ds, "mytable")
dv = ds.Tables("mytable").DefaultView
ConnexionOLE.Close()
DataGridView1.DataSource = dv
dv.AllowEdit = True





End

Sub






Private

Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click





Connexion = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = C:\\Adfs\dfs\Partage\Data Manager\ARTICLES\Articles.mdb"
ConnexionOLE.ConnectionString = Connexionda New OleDbDataAdapter("Select NOM_CLIENT , NUMERO_CLIENT from EXPORT where [NUMERO_CLIENT] '4'", ConnexionOLE)
ds = New DataSet()
da.Fill(ds, "mytable")
dv = ds.Tables("mytable").DefaultView
DataGridView1.DataSource = dv
dv.AllowEdit = True





End

Sub






End

Class

3 réponses

dsaunier Messages postés 12 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 25 novembre 2007
18 nov. 2007 à 11:57
Bonjour,
si ton champs  NUMERO_CLIENT est un numérique alors ton  SQL doit être du type:
"SELECT ... FROM EXPORT WHERE [NUMERO_CLIENT=4", pas besoin de quote...
0
dsaunier Messages postés 12 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 25 novembre 2007
18 nov. 2007 à 11:59
Oups,
il faut naturellement ne pas oublier le ]...
"SELECT ... FROM EXPORT WHERE [NUMERO_CLIENT]=4"
0
miniheli Messages postés 18 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 30 juillet 2009
18 nov. 2007 à 13:07
Ca marche !

Sincères remerciements.

Guillaume
0
Rejoignez-nous