DataGrid, vidage et mise a jour (DataSet et OleDataAdapter)
4 réponses
aitoz
Bonjour,
select case valeur
Case 1
'*************************************************************************
'Avant je reforme le formulaire de question
Ds_NUBL.Clear()
'*************************************************************************
'J'implémente le DataGrid
Da_NUBL = New OleDb.OleDbDataAdapter("SELECT * FROM LIVRAISONS",
OleDbConnection1)
'Je créé le lien entre le DataSet et le DataGrid uniquement pour la tabble
en-cours
Da_NUBL.Fill(Ds_NUBL)
Me.DataGrid1.DataSource = Ds_NUBL.Tables(0)
Me.DataGrid1.ReadOnly = True
Me.DataGrid1.AllowNavigation = True
Case 2
'*************************************************************************
'Avant je reforme le formulaire de question
Ds_NUBL.Clear()
'*************************************************************************
'J'implémente le DataGrid
Da_NUBL = New OleDb.OleDbDataAdapter("SELECT * FROM COMMANDES",
OleDbConnection1)
'Je créé le lien entre le DataSet et le DataGrid uniquement pour la tabble
en-cours
Da_NUBL.Fill(Ds_NUBL)
Me.DataGrid1.DataSource = Ds_NUBL.Tables(0)
Me.DataGrid1.ReadOnly = True
Me.DataGrid1.AllowNavigation = True
end select
Le probleme est que la struture de ma table LIVRAISONS et la table COMMANDES
sont différente et dans le meme DataGrid1 les colonnes restent en place.
Je n'arrive pas a repartir sur un DataGrid1 propre. les colonnes de la
première table chargée reste affichées quand j'affiche la deuxieme.
Si quelqu'un sait comment vider completement un Datagrid ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
aitoz
En fait, la fonction :
'Avant je reforme le formulaire de question Ds_NUBL.Clear()
Fonctionne très bien lorsqu'il s'agit d'afficher les mêmes informations. Je m'explique : si j'ai 2 colonnes, ARTICLE et PRIX, je peux effacer avec clear et reafficher les memes données mises a jour. Mais si je veux sur le meme Datagrid afficher une fois 2 colonnes et une autre fois 3, comme par exemple la base ARTICLE (avec la désignation, le prix, etc...) je ne peux plus utiliser la méthode Clear().
Comment faire !
Laurent
En fait, la fonction :
'Avant je reforme le formulaire de question
Ds_NUBL.Clear()
Fonctionne très bien lorsqu'il s'agit d'afficher les mêmes informations.
Je m'explique : si j'ai 2 colonnes, ARTICLE et PRIX, je peux effacer avec
clear et reafficher les memes données mises a jour.
Mais si je veux sur le meme Datagrid afficher une fois 2 colonnes et une
autre fois 3, comme par exemple la base ARTICLE (avec la désignation, le
prix, etc...) je ne peux plus utiliser la méthode Clear().
'Avant je reforme le formulaire de question Ds_NUBL.Clear()
Fonctionne très bien lorsqu'il s'agit d'afficher les mêmes informations. Je m'explique : si j'ai 2 colonnes, ARTICLE et PRIX, je peux effacer avec clear et reafficher les memes données mises a jour. Mais si je veux sur le meme Datagrid afficher une fois 2 colonnes et une autre fois 3, comme par exemple la base ARTICLE (avec la désignation, le prix, etc...) je ne peux plus utiliser la méthode Clear().
Comment faire !
Laurent
Vko
Attention Ds_Clear() vide ton DataSet ... mais pas ta DataGrid. Sauf si tu refais un Me.DataGrid1.DataBind()
Comment sont créés les colonnes de ta DataGrid ? Automatiquement (si la propriété AutoGenerateColumn est à vraie) ? Manuellement ?
Pourquoi tu ne peux plus appeler la méthode Clear() ?
Est-ce que tu pourrais expliquer grossièrement ton applicatif ? je pense qu'on pourra te donner des éléments de réponse plus adaptés, parce que là j'ai du mal à comprendre (je fais le parallèle avec ton autre post).
"aitoz" wrote:
En fait, la fonction :
'Avant je reforme le formulaire de question Ds_NUBL.Clear()
Fonctionne très bien lorsqu'il s'agit d'afficher les mêmes informations. Je m'explique : si j'ai 2 colonnes, ARTICLE et PRIX, je peux effacer avec clear et reafficher les memes données mises a jour. Mais si je veux sur le meme Datagrid afficher une fois 2 colonnes et une autre fois 3, comme par exemple la base ARTICLE (avec la désignation, le prix, etc...) je ne peux plus utiliser la méthode Clear().
Comment faire !
Laurent
Attention Ds_Clear() vide ton DataSet ... mais pas ta DataGrid. Sauf si tu
refais un Me.DataGrid1.DataBind()
Comment sont créés les colonnes de ta DataGrid ? Automatiquement (si la
propriété AutoGenerateColumn est à vraie) ? Manuellement ?
Pourquoi tu ne peux plus appeler la méthode Clear() ?
Est-ce que tu pourrais expliquer grossièrement ton applicatif ? je pense
qu'on pourra te donner des éléments de réponse plus adaptés, parce que là
j'ai du mal à comprendre (je fais le parallèle avec ton autre post).
"aitoz" wrote:
En fait, la fonction :
'Avant je reforme le formulaire de question
Ds_NUBL.Clear()
Fonctionne très bien lorsqu'il s'agit d'afficher les mêmes informations.
Je m'explique : si j'ai 2 colonnes, ARTICLE et PRIX, je peux effacer avec
clear et reafficher les memes données mises a jour.
Mais si je veux sur le meme Datagrid afficher une fois 2 colonnes et une
autre fois 3, comme par exemple la base ARTICLE (avec la désignation, le
prix, etc...) je ne peux plus utiliser la méthode Clear().
Attention Ds_Clear() vide ton DataSet ... mais pas ta DataGrid. Sauf si tu refais un Me.DataGrid1.DataBind()
Comment sont créés les colonnes de ta DataGrid ? Automatiquement (si la propriété AutoGenerateColumn est à vraie) ? Manuellement ?
Pourquoi tu ne peux plus appeler la méthode Clear() ?
Est-ce que tu pourrais expliquer grossièrement ton applicatif ? je pense qu'on pourra te donner des éléments de réponse plus adaptés, parce que là j'ai du mal à comprendre (je fais le parallèle avec ton autre post).
"aitoz" wrote:
En fait, la fonction :
'Avant je reforme le formulaire de question Ds_NUBL.Clear()
Fonctionne très bien lorsqu'il s'agit d'afficher les mêmes informations. Je m'explique : si j'ai 2 colonnes, ARTICLE et PRIX, je peux effacer avec clear et reafficher les memes données mises a jour. Mais si je veux sur le meme Datagrid afficher une fois 2 colonnes et une autre fois 3, comme par exemple la base ARTICLE (avec la désignation, le prix, etc...) je ne peux plus utiliser la méthode Clear().
Comment faire !
Laurent
aitoz
Justement, on autre poste est quasiment identique. C'est juste une autre manière d'exposer le probleme.
voici mon code :
SELECT CASE Valeur
CASE 1
Ds_NUBL.Clear() Da_NUBL = New OleDb.OleDbDataAdapter("SELECT * FROM LIVRAISONS", OleDbConnection1)
'Je créé le lien entre le DataSet et le DataGrid Da_NUBL.Fill(Ds_NUBL) Me.DataGrid1.DataSource = Ds_NUBL.Tables(0) Me.DataGrid1.ReadOnly = True Me.DataGrid1.AllowNavigation = True
CASE 2
Ds_NUBL.Clear() Da_NUBL = New OleDb.OleDbDataAdapter("SELECT * FROM COMMANDES", OleDbConnection1)
'Je créé le lien entre le DataSet et le DataGrid Da_NUBL.Fill(Ds_NUBL) Me.DataGrid1.DataSource = Ds_NUBL.Tables(0) Me.DataGrid1.ReadOnly = True Me.DataGrid1.AllowNavigation = True
END SELECT
Donc je dirais que c'est le résultat de la requete qui implémente le DataGrid et qui créé les colonnes. Mais la méthode clear efface le DataSet et ar conséquence le Datagrid (a l'affichage). Sauf qu'il ne supprime pas le schéma qui a été créé et du coup les en-têtes restent. par conséquent, quand je veux afficher le résultat d'une autre table les en-têtes de colonnes se décalent et mon Datagrid ne ressemble a rien.
j'aimerai donc utiliser un truc du genre DataGrid1.columns.clear ! mais je n'ai pas accès a cette propriété.
Voila ! j'espère que je suis clair !?
Merci
Justement, on autre poste est quasiment identique. C'est juste une autre
manière d'exposer le probleme.
voici mon code :
SELECT CASE Valeur
CASE 1
Ds_NUBL.Clear()
Da_NUBL = New OleDb.OleDbDataAdapter("SELECT * FROM LIVRAISONS",
OleDbConnection1)
'Je créé le lien entre le DataSet et le DataGrid
Da_NUBL.Fill(Ds_NUBL)
Me.DataGrid1.DataSource = Ds_NUBL.Tables(0)
Me.DataGrid1.ReadOnly = True
Me.DataGrid1.AllowNavigation = True
CASE 2
Ds_NUBL.Clear()
Da_NUBL = New OleDb.OleDbDataAdapter("SELECT * FROM COMMANDES",
OleDbConnection1)
'Je créé le lien entre le DataSet et le DataGrid
Da_NUBL.Fill(Ds_NUBL)
Me.DataGrid1.DataSource = Ds_NUBL.Tables(0)
Me.DataGrid1.ReadOnly = True
Me.DataGrid1.AllowNavigation = True
END SELECT
Donc je dirais que c'est le résultat de la requete qui implémente le
DataGrid et qui créé les colonnes.
Mais la méthode clear efface le DataSet et ar conséquence le Datagrid (a
l'affichage).
Sauf qu'il ne supprime pas le schéma qui a été créé et du coup les en-têtes
restent.
par conséquent, quand je veux afficher le résultat d'une autre table les
en-têtes de colonnes se décalent et mon Datagrid ne ressemble a rien.
j'aimerai donc utiliser un truc du genre DataGrid1.columns.clear ! mais je
n'ai pas accès a cette propriété.
Justement, on autre poste est quasiment identique. C'est juste une autre manière d'exposer le probleme.
voici mon code :
SELECT CASE Valeur
CASE 1
Ds_NUBL.Clear() Da_NUBL = New OleDb.OleDbDataAdapter("SELECT * FROM LIVRAISONS", OleDbConnection1)
'Je créé le lien entre le DataSet et le DataGrid Da_NUBL.Fill(Ds_NUBL) Me.DataGrid1.DataSource = Ds_NUBL.Tables(0) Me.DataGrid1.ReadOnly = True Me.DataGrid1.AllowNavigation = True
CASE 2
Ds_NUBL.Clear() Da_NUBL = New OleDb.OleDbDataAdapter("SELECT * FROM COMMANDES", OleDbConnection1)
'Je créé le lien entre le DataSet et le DataGrid Da_NUBL.Fill(Ds_NUBL) Me.DataGrid1.DataSource = Ds_NUBL.Tables(0) Me.DataGrid1.ReadOnly = True Me.DataGrid1.AllowNavigation = True
END SELECT
Donc je dirais que c'est le résultat de la requete qui implémente le DataGrid et qui créé les colonnes. Mais la méthode clear efface le DataSet et ar conséquence le Datagrid (a l'affichage). Sauf qu'il ne supprime pas le schéma qui a été créé et du coup les en-têtes restent. par conséquent, quand je veux afficher le résultat d'une autre table les en-têtes de colonnes se décalent et mon Datagrid ne ressemble a rien.
j'aimerai donc utiliser un truc du genre DataGrid1.columns.clear ! mais je n'ai pas accès a cette propriété.
Voila ! j'espère que je suis clair !?
Merci
aitoz
Je n'ai toujours pas réussi a trouver une réponse a mon probleme. Pour vous expliquer mon probleme, j'ai une fenetre qui contient sur la partie gauche une listview et sur la partir droite un datagrid. Sur la partie gauche j'ai mis la liste des états crystal report classés par catégories que j'ai dans ma banque de données. Dans la partie gauche j'ai une datagrid qui contient a chaque fois les critères ! Et comme les critères sont différents d'un état a l'autre je voudrais en gros effacer le critère en cours et le remettre a jour avec les nouveaux critères !
Exemple : J'ai deux états, l'un pour imprimer les Factures et l'autre les commandes d'achats. Quand je clique dans ma listview sur les factures j'ai dans la partie droite le datagrid qui regroupe tous les n° de factures avc des petites informations. ensuite quand je clique sur l'état des commandes d'achats, je veux que ca m'affiche la liste des commandes d'achats, mais le probleme est que j'arrive a vider les données mais pas le format du datagrid, donc il reste les en-têtes et mes colonnes viennent s'ajouter a la fin de l'état précèdent !
Si quelqu'un peut m'aider ?
Je n'ai toujours pas réussi a trouver une réponse a mon probleme.
Pour vous expliquer mon probleme, j'ai une fenetre qui contient sur la
partie gauche une listview et sur la partir droite un datagrid.
Sur la partie gauche j'ai mis la liste des états crystal report classés par
catégories que j'ai dans ma banque de données.
Dans la partie gauche j'ai une datagrid qui contient a chaque fois les
critères !
Et comme les critères sont différents d'un état a l'autre je voudrais en
gros effacer le critère en cours et le remettre a jour avec les nouveaux
critères !
Exemple : J'ai deux états, l'un pour imprimer les Factures et l'autre les
commandes d'achats.
Quand je clique dans ma listview sur les factures j'ai dans la partie droite
le datagrid qui regroupe tous les n° de factures avc des petites
informations. ensuite quand je clique sur l'état des commandes d'achats, je
veux que ca m'affiche la liste des commandes d'achats, mais le probleme est
que j'arrive a vider les données mais pas le format du datagrid, donc il
reste les en-têtes et mes colonnes viennent s'ajouter a la fin de l'état
précèdent !
Je n'ai toujours pas réussi a trouver une réponse a mon probleme. Pour vous expliquer mon probleme, j'ai une fenetre qui contient sur la partie gauche une listview et sur la partir droite un datagrid. Sur la partie gauche j'ai mis la liste des états crystal report classés par catégories que j'ai dans ma banque de données. Dans la partie gauche j'ai une datagrid qui contient a chaque fois les critères ! Et comme les critères sont différents d'un état a l'autre je voudrais en gros effacer le critère en cours et le remettre a jour avec les nouveaux critères !
Exemple : J'ai deux états, l'un pour imprimer les Factures et l'autre les commandes d'achats. Quand je clique dans ma listview sur les factures j'ai dans la partie droite le datagrid qui regroupe tous les n° de factures avc des petites informations. ensuite quand je clique sur l'état des commandes d'achats, je veux que ca m'affiche la liste des commandes d'achats, mais le probleme est que j'arrive a vider les données mais pas le format du datagrid, donc il reste les en-têtes et mes colonnes viennent s'ajouter a la fin de l'état précèdent !