(ADO.NET) faire une recherche comme en VB6

asem67 Messages postés 145 Date d'inscription mardi 3 septembre 2002 Statut Membre Dernière intervention 24 février 2008 - 29 août 2004 à 17:59
juvamine Messages postés 468 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 30 août 2007 - 29 août 2004 à 20:52
bonjour à tous !
qel q1 pourait m'aider pour touver l'equivalent de :

Data.rsRecorset.Filter = "Champ LIKE '*" & Trim(TextBox.Text) & "*'"

pour que ça fonctionne avec ADO.NET

dur dur de passer au .net !!!?

MERCI
ASEM67 :)

5 réponses

juvamine Messages postés 468 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 30 août 2007 2
29 août 2004 à 18:16
comme tu dis c'est dur dur !!!
j'ai cependant ta solution, il faut utiliser un DataReader
bon je te met la totale, de la connexion au parcours du curseur

'déclaration et ouverture d'une connexion vers la base (access ici)
Dim cn As New OleDb.OleDbConnection ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\toto.mdb;Persist Security Info=False")

cn.Open()

'ouverture dun objet command (ki recoit la rekette)
Dim cd As New OleDb.OleDbCommand("select champs1,champs2 FROM TaTable where Champ LIKE '%" & Trim(TextBox.Text) & "%'", cn)

'le fameux datareader ki va lire la rekette etla parcourire (ékivalent du recordset)
Dim rd As OleDb.OleDbDataReader

rd = cd.ExecuteReader

'parcours
While rd.Read
msgbox rd("Champs1")
End While

'on ferme tout
rd.Close()
cn.Close()

voila...maintenant tout dépen ce ke tu veux faire...explike un peu mieux ton pb (remplir un datagrid, etc...)

++
juva

Retrouvez une équipe de développeurs confirmés sur le tchate:
serveur : bastia.zefunChat.net
port : 6667
chan : #programmation
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
29 août 2004 à 18:34
Extrait de CETTE PAGE

Voilà les différences (dixit Microsoft) :

'DAO

Sub DAOFilterRecordset()
   Dim db As DAO.Database
   Dim rst As DAO.Recordset
   Dim rstFlt As DAO.Recordset
   ' Ouverture de la base de données
   Set db = DBEngine.OpenDatabase(".\Comptoir.mdb")
   ' Ouverture du Recordset
   Set rst = db.OpenRecordset("Clients", dbOpenDynaset)
   ' Définition du filtre à utiliser pour les 
Recordset suivants
   rst.Filter = "Pays='USA' And Fax Is Not Null"
   ' Ouverture du Recordset sélectionné
   Set rstFlt = rst.OpenRecordset()
   Debug.Print rstFlt.Fields("Code 
client").Value
   ' Fermeture des Recordsets
   rst.Close
   rstFlt.Close
End Sub
'ADO

Sub ADOFilterRecordset()
   Dim cnn As New ADODB.connection
   Dim rst As New ADODB.Recordset
   ' Ouverture de la connection
   cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
      "Data Source=.\Comptoir.mdb;"
   ' Ouverture du Recordset
   rst.Open "Clients", cnn, adOpenKeyset, adLockOptimistic
   ' Filtrage du Recordset pour inclure uniquement 
les clients
   ' basés aux États-Unis disposant d'un numéro 
de fax
   rst.Filter = "Pays='USA' And Fax <> Null"
      Debug.Print rst.Fields("Code 
client").Value
   ' Fermeture du Recordset
   rst.Close
End Sub


Cordialement, CanisLupus

Tous les glands ne deviennent pas des chênes mais tous les chênes ont été des glands
0
asem67 Messages postés 145 Date d'inscription mardi 3 septembre 2002 Statut Membre Dernière intervention 24 février 2008
29 août 2004 à 18:57
Merci Juvamine
ça fonctionne nikel

je voudrais remplire un dataGrid
et
une liste ou je purais choisir la reponse qui me convient
ça depand des cas

et merci aussi a CaniLupus mais je voudrais faire mon prog entierement en .NET
A+
ASEM67 :)
0
juvamine Messages postés 468 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 30 août 2007 2
29 août 2004 à 20:50
si tu veux remplir un datagrid jai une meilleur solution encore !!
c une fonction ki retourne un DataTable pour remplir ta datagrid


Public Function RemplirDataGrid() As DataTable

        Dim cn As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\toto.mdb;ersist Security Info=False")

        Dim DA As New OleDb.OleDbDataAdapter, DS As New DataSet("Truc")

        DA.TableMappings.Add("Table", "TaTable")

        cn.Open()

        Dim Cde As New OleDb.OleDbCommand("select champs1 from TaTable where Champ LIKE '%" & Trim(TextBox.Text) & "%'" , cn)

        Cde.CommandType = CommandType.Text

        DA.SelectCommand = Cde

        DA.Fill(DS)

        cn.Close()

        Return DS.Tables("TaTable")

End Function


voila

et en Form_Load

DataGrid1.DataSource=RemplirDataGrid()


voila
il fo comprendre le principe d'ado.net il a été développé en plusieurs couches...www.developpez.com ya kelkes tuto ki peuvent t'aider

Retrouvez une équipe de développeurs confirmés sur le tchate:
serveur : bastia.zefunChat.net
port : 6667
chan : #programmation
0

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

Posez votre question
juvamine Messages postés 468 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 30 août 2007 2
29 août 2004 à 20:52
j'ai fais une erreur ds la chaine de connexion, prends la chaine de connexion du Post précédent c la meme !!

++
juva

Retrouvez une équipe de développeurs confirmés sur le tchate:
serveur : bastia.zefunChat.net
port : 6667
chan : #programmation
0
Rejoignez-nous