Besoin d'aide ADO.NET(fonction recherch) SVP

Fermé
cindy_misa Messages postés 146 Date d'inscription vendredi 22 février 2008 Statut Membre Dernière intervention 6 août 2009 - 26 mars 2008 à 12:12
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 26 mars 2008 à 15:36
Bonjour les amis ,

J'ai besoin d'aide s'il vous plait ! Je développe un projet avec vb.net et une base de données sql server .J'ai programmer un code qui recherche un fournisseur dans la base de données (l'application est en mode déconnecté) .Le problème c'est que si un enregistrement recherché n'existe pas ;alors le premier est affiché dans les textbox , et ce n'est pas logique .Je veux une fonction ou quelque chose qui vérifie d'abord si un enregistrement existe dans la base de données ou non ,si oui , le résultat est affiché dans les textbox ,sinon : un messagebox.show("fournisseur introuvable ") et n'affiche rien dans les textbox .

J'espère que j'étais claire dans mon message !
Merci d'avance pour votre aide !
A voir également:

2 réponses

Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
26 mars 2008 à 12:57
Bonjour Cindy_misa, lol

C'est gentil d'avoir pensé à moi ... mais je ne développe pas en vb.net ...mdr ... je vais néanmoins essayer de t'aider.
Je suppose que tu passes une requête du genre "SELECT nom_Fournisseur FROM Fournisseur WHERE nom_Fournisseur = '" & oFournisseur & "'" ... si c'est le cas, le retour de ton recordset doit être vide. Il faut donc tester le retour. Je ne sais pas si RecordCount existe en VB.NET, en VB on fait : If rs.RecordCount = 0 then ....

J'aimerai connaître ta requête.

;o)

Polux
0
cindy_misa Messages postés 146 Date d'inscription vendredi 22 février 2008 Statut Membre Dernière intervention 6 août 2009 44
26 mars 2008 à 14:36
Merci beaucoup ,c'est gentil de ta part !
Je n'utilise pas une requette comme ça parce que je travaille en mode déconnecté .
Bon voici le code de la recherche ,il fait la recherche mais lorsqu'un enregistrement n'existe pas , il affiche dans les textbox le premier enregistrement , et dans le datagridview(gridfournisseur) il n'affiche rien , :


str = "data source = localhost ;initial catalog=gestionempresa;integrated security=sspi"
req2 = "select * from Fournisseurs where Empresa= '" + TextBox15.Text + "'"
con = New SqlConnection(str)
con.Open()
dts.Clear()
dta3 = New SqlDataAdapter(req2, con)
dta3.Fill(dts, "Fournisseurs")

For i = 0 To dts.Tables("Fournisseurs").Rows.Count - 1

TextBox1.Text = dts.Tables("Fournisseurs").Rows(i)(0)
TextBox2.Text = dts.Tables("Fournisseurs").Rows(i)(1)
TextBox3.Text = dts.Tables("Fournisseurs").Rows(i)(2)
TextBox4.Text = dts.Tables("Fournisseurs").Rows(i)(3)
TextBox5.Text = dts.Tables("Fournisseurs").Rows(i)(4)
TextBox6.Text = dts.Tables("Fournisseurs").Rows(i)(5)
TextBox7.Text = dts.Tables("Fournisseurs").Rows(i)(6)
TextBox8.Text = dts.Tables("Fournisseurs").Rows(i)(7)
TextBox9.Text = dts.Tables("Fournisseurs").Rows(i)(8)
TextBox10.Text = dts.Tables("Fournisseurs").Rows(i)(9)
TextBox11.Text = dts.Tables("Fournisseurs").Rows(i)(10)
TextBox12.Text = dts.Tables("Fournisseurs").Rows(i)(11)
TextBox13.Text = dts.Tables("Fournisseurs").Rows(i)(12)
TextBox14.Text = dts.Tables("Fournisseurs").Rows(i)(13)

Next

Me.BindingSource1.DataSource = dts.Tables("Fournisseurs")
Me.gridfournisseur.DataSource = BindingSource1



Je vex faire un test sur le datagridview , s'il est vide apres l'affichage alors Messagebox.show("introuvable")


Mais je n'arrive pas à le faire .
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
26 mars 2008 à 15:36
re,

tu es bien connectée à une base de données là ... ensuite je ne sais pas pour VB.NET mais il faut éviter le "+" et mettre "&" ... "+" étant un opérateur arithmétique.

Peux-tu me dire ce qu'est dts ? dta3 je suppose que c'est le recordset. Si c'est le cas, ne serai-ce pas plutôt :
While Not dta3(eof)
   TextBox1.Text = dta3.Fields(0)
   TextBox2.Text = dta3.Fields(1)
'... etc
Wend


Si RecordCount existe, fais un test juste avant :
If dta.RecordCount = 0 then
   Messagebox.show "Ce fournisseur n'est pas dans la base de données"
Else
While Not dta3(eof)
   TextBox1.Text = dta3.Fields(0)
   TextBox2.Text = dta3.Fields(1)
'... etc
Wend


Je ne connais pas assez VB.NET pour t'aider plus que ça ... dsl

;o)

polux
0