dakota77
Messages postés11Date d'inscriptionsamedi 1 septembre 2007StatutMembreDernière intervention25 février 2010
-
14 déc. 2008 à 12:05
mohamedtsdi
Messages postés4Date d'inscriptionmardi 13 mai 2008StatutMembreDernière intervention17 décembre 2008
-
17 déc. 2008 à 17:52
Bonjour, novice en VB.NET, je souhaiterais connecter à une table mdb et ne charger dans une form que les enregistrements qui correspondent à certains critères grâce à une requête SQL.
La première étape consiste à utiliser l'assistant "connexion bases de données" qui va créer les objets nécessaires : un tableAdapter, un dataset, un bindingnavigator et un bindingsource.
Tous les enregistrement sont chargés dans la form. Les contrôles mis automatiquement par l'assistant fonctionnent bien ainsi que le datagridview.
Je voudrais maintenant n'afficher dans le datagriview que les enregistrements dont le champ NBR vaut 1. La chaîne SQL serait : sw1 = "SELECT NFD, NBR FROM(CAL01) where (NBR=1)"
Ma question est : en utilisant tous les objets déjà créés par l'assistant, comment remplir par code le dataset existant avec des données basées sur cette requête SQL ?
Au lieu d'utilser les objets existants, on pourrait en créer des nouveaux. Cette solution ne me paraît pas très "propre". Le code suivant fonctionne. Mais le BindingNavigatorsaveitem par exemple ne fonctionne plus. Donc impossible de sauvegarder les modifications.
Quelle est la bonne méthode ?
Merci pour votre aide.
Public Class Form1
Public AcCon As OleDb.OleDbConnection
Public AcCmd As OleDb.OleDbCommand
Public AcDta As OleDb.OleDbDataAdapter
Public AcDts As DataSet
Public AcDtt As DataTable
Public AcOcb As OleDb.OleDbCommandBuilder
Public RN As Integer 'Numéro de l'enregistrement courant
Public CS1 As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
Public DR As String = "c:\LRVB8"
Public db As String = "VOCABUT.mdb"
Public CS2 As String = CS1 & DR & db
Public tb1 As String = "CAL01"
Public sw1 As String 'string SQL
Friend Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
sw1 = "SELECT [N°], QUE, REP, NFD, NBR, DEM, TEM, DHR FROM(CAL01) where (NBR=1)"
AcCon = New OleDb.OleDbConnection
AcCmd = New OleDb.OleDbCommand(sw1)
AcDta = New OleDb.OleDbDataAdapter(AcCmd)
AcDts = New DataSet
AcCon.ConnectionString = CS2
AcCmd.Connection() = AcCon
AcDta.Fill(AcDts, tb1)
End Sub
mohamedtsdi
Messages postés4Date d'inscriptionmardi 13 mai 2008StatutMembreDernière intervention17 décembre 2008 17 déc. 2008 à 17:52
voilla un Bon code Ado.net(vb)
imports system.data
imports system.data.oledb
Public Class Form1
dim cn as new oledbconnection("Provider=Microsoft.Jet.OLEDB.4.0;" _
"Data Source=c:\LRVB8\VOCABUT.mdb")
dim ds as new dataset()
dim da as oledbdataAdapter()
dim bs as new bindingsource()
Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
da=new oledbdataAdapter("SELECT * FROM CAL01",cn)
' c'est mieux de remplir le dataset (ds) par tout les donner de table CAL01
da.Fill(ds,"CAL01") 'remplissage de dataset ds
bs.datasource=ds
bs.dataMember=ds.table("CAL01").tablename
bs.Filter= ds.table("CAL01").column(3).collumnName & "= ' " & 1 & " ' " 'ici filtrage
me.datagrideview1.datasource=bs' l'Affichage des donner sur datagrideview1
end sub
Remarque: écrire ce code pour éviter route erreur de code + tester<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
mohamedtsdi
Messages postés4Date d'inscriptionmardi 13 mai 2008StatutMembreDernière intervention17 décembre 2008 17 déc. 2008 à 17:52
voilla un Bon code Ado.net(vb)
imports system.data
imports system.data.oledb
Public Class Form1
dim cn as new oledbconnection("Provider=Microsoft.Jet.OLEDB.4.0;" _
"Data Source=c:\LRVB8\VOCABUT.mdb")
dim ds as new dataset()
dim da as oledbdataAdapter()
dim bs as new bindingsource()
Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
da=new oledbdataAdapter("SELECT * FROM CAL01",cn)
' c'est mieux de remplir le dataset (ds) par tout les donner de table CAL01
da.Fill(ds,"CAL01") 'remplissage de dataset ds
bs.datasource=ds
bs.dataMember=ds.table("CAL01").tablename
bs.Filter= ds.table("CAL01").column(3).collumnName & "= ' " & 1 & " ' " 'ici filtrage
me.datagrideview1.datasource=bs' l'Affichage des donner sur datagrideview1
end sub
Remarque: écrire ce code pour éviter toute erreur de code + tester<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>