Filtre DataTable et DataGridView
Bonsoir,
Ci dessous mon bout de code.
J'utilise Visual Studio 2010 Express et .net Framework 4.0
=> Le datagrid s'affiche correctement sans filtre :
Code:
DtgDonnees.DataSource = DtsBase.Tables("D")
=> Par contre, impossible de l'afficher avec un Select
Code:
DtgDonnees.DataSource = DtsBase.Tables("D").Select("NoDonnee=1")
Il n'affiche qu'une ligne : mes champs sont vides ; il ajoute les champs "RowError" : Vide ; "RowState" contient Unchanged ; "Table" : vide ; "HasErrors" : case à cocher non cochée
* Vu avec Access : la table contient bien un champ pour "NoDonnee=1"
Il ne va pas à la routine d'erreur.
*J'ai essayé avec des filtres sur d'autres champs, l'ajout d'une clé primaire, ... toujours pareil
* J'ai essayé ("[NoDonnee]=1")
*Les données sont bien sélectionnées : la routine suivante me donne les bonnes données :
Code:
1 2 3 4 5
| 'Dim FoundRows As DataRow()
'FoundRows = DtsBase.Tables("D").Select("NoDonnee=1)
'For i As Integer = 0 To FoundRows.Length - 1
'MsgBox(FoundRows(i)(3))
'Next |
Je ne sais plus quoi faire...
Merci pour votre aide
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
===========================================
Dim StSql As String
'Ouverture de la connection
CnxStr = "provider = microsoft.jet.oledb.4.0 ; data source = " & My.Settings.BddChemin & My.Settings.BddNom & ";"
Cnx = New OleDbConnection(CnxStr)
Cnx.Open()
'Créer le dataset (copie des données en local)
DtsBase = New DataSet("Base")
'==============Créer la table "Donnees"
DtsBase.Tables.Add("D")
'Créer le dataadapter, lien entre la base et le dataset, table "Donnees"
StSql = "SELECT Donnee.NoDonnee, Donnee.DateDonnee, Donnee.ConcerneDonnee, Donnee.TexteDonnee, Salarie.NomSalarie FROM Salarie INNER JOIN Donnee ON Salarie.NoSalarie = Donnee.CreateurDonnees;"
DtaBase = New OleDbDataAdapter(StSql, Cnx)
'Remplir le dataset Donnees
DtaBase.Fill(DtsBase.Tables("D"))
'Remplir le datagrid Donnees avec les données de la table Donnees
On Error GoTo truc
DtgDonnees.DataSource = DtsBase.Tables("D").Select("NoDonnee=1")
.../... |
truc:
Code:
MsgBox(Err.Description)