Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

URGENT : Problèmes de mise à jour

6 réponses
Avatar
C. Vidal
Bonjour à tous,

Je viens vers vous une nouvelle fois car je bloque depuis longtemps sur un
problème. J'ai posé plusieurs fois la question sur ces news, mais je ne
désespère pas que quelqu'un m'aide.

Voilà j'ai un datagrid qui contient le résultat d'une requête comme suit

Ligne ID Nom Ordre
1 1 Chien 1
2 3 Chat 2
3 4 Poisson 3

Comme le montre l'exemple, les enregistrements sont triés sur le champ
Ordre.
L'utilisateur a la possibilité de modifier l'ordre des enregsitrements en
faisant glisser les lignes comme il le souhaite dans le datagrid. Par
exemple, on peut obtenir ceci :

Ligne ID Nom Ordre
1 4 Poisson 3
2 1 Chien 1
3 3 Chat 2

J'effectue un traitement qui me permet de mettre à jour le champ Ordre dans
mon datagrid comme cela :

Ligne ID Nom Ordre
1 4 Poisson 1
2 1 Chien 2
3 3 Chat 3

Par contre, je n'arrive pas à enregistrer ce changement dans ma table.
Lorsque que je recharge le formulaire avec mon datagrid, les enregsitrements
sont toujours dans l'ordre Chine, Chat, Poisson.

Pourriez vous m'aidez car je suis bloquée et il faut que trouve une solution
rapidement.
J'ai besoin de cela pour conserver l'ordre des lignes de commandes,
devis....
Merci par avance

C. Vidal

6 réponses

Avatar
newscache3.freenet.de
J'ai eu le meme probleme et on m'a repondu qu'il n'y a pas de lien entre la
table et le datagrid;

J'ai du tout programmer en considérant que la table était copiée dans le
datagrid et que je devais y mettre toutes les infos nécessaires pour m'y
retrouver en cas de tri utilisateur.

Gilbert

"C. Vidal" a écrit dans le message de news:

Bonjour à tous,

Je viens vers vous une nouvelle fois car je bloque depuis longtemps sur un
problème. J'ai posé plusieurs fois la question sur ces news, mais je ne
désespère pas que quelqu'un m'aide.

Voilà j'ai un datagrid qui contient le résultat d'une requête comme suit

Ligne ID Nom Ordre
1 1 Chien 1
2 3 Chat 2
3 4 Poisson 3

Comme le montre l'exemple, les enregistrements sont triés sur le champ
Ordre.
L'utilisateur a la possibilité de modifier l'ordre des enregsitrements en
faisant glisser les lignes comme il le souhaite dans le datagrid. Par
exemple, on peut obtenir ceci :

Ligne ID Nom Ordre
1 4 Poisson 3
2 1 Chien 1
3 3 Chat 2

J'effectue un traitement qui me permet de mettre à jour le champ Ordre
dans
mon datagrid comme cela :

Ligne ID Nom Ordre
1 4 Poisson 1
2 1 Chien 2
3 3 Chat 3

Par contre, je n'arrive pas à enregistrer ce changement dans ma table.
Lorsque que je recharge le formulaire avec mon datagrid, les
enregsitrements
sont toujours dans l'ordre Chine, Chat, Poisson.

Pourriez vous m'aidez car je suis bloquée et il faut que trouve une
solution
rapidement.
J'ai besoin de cela pour conserver l'ordre des lignes de commandes,
devis....
Merci par avance

C. Vidal






Avatar
C. Vidal
Bonjour et merci de m'avoir répondu, je commençais à désespérer.
Je ne comprends pas bien votre réponse dans le sens où mon datagrid est
"lié" à ma table par un dataset.
Ce que je ne sais pas faire c'est comment mettre à jour le champ "Ordre" (cf
mon exemple dans le message d'origine).

Je trouve cela un peu fou car je suis capable de mettre à jour les autres
champs de ma table à partir du datagrid, mais pas celui-ci.
J'ai lu quelque part que si le datagrid était trié, il fallait utiliser le
bindingManager pour pointer sue le bon enregistrement du dataset.
Je ne sais pas si cela peut être une solution, mais pourriez vous m'aider.
Merci par avance de votre aide
C. Vidal

"newscache3.freenet.de" a écrit dans le message de
news:
J'ai eu le meme probleme et on m'a repondu qu'il n'y a pas de lien entre
la table et le datagrid;

J'ai du tout programmer en considérant que la table était copiée dans le
datagrid et que je devais y mettre toutes les infos nécessaires pour m'y
retrouver en cas de tri utilisateur.

Gilbert

"C. Vidal" a écrit dans le message de news:

Bonjour à tous,

Je viens vers vous une nouvelle fois car je bloque depuis longtemps sur
un
problème. J'ai posé plusieurs fois la question sur ces news, mais je ne
désespère pas que quelqu'un m'aide.

Voilà j'ai un datagrid qui contient le résultat d'une requête comme suit

Ligne ID Nom Ordre
1 1 Chien 1
2 3 Chat 2
3 4 Poisson 3

Comme le montre l'exemple, les enregistrements sont triés sur le champ
Ordre.
L'utilisateur a la possibilité de modifier l'ordre des enregsitrements en
faisant glisser les lignes comme il le souhaite dans le datagrid. Par
exemple, on peut obtenir ceci :

Ligne ID Nom Ordre
1 4 Poisson 3
2 1 Chien 1
3 3 Chat 2

J'effectue un traitement qui me permet de mettre à jour le champ Ordre
dans
mon datagrid comme cela :

Ligne ID Nom Ordre
1 4 Poisson 1
2 1 Chien 2
3 3 Chat 3

Par contre, je n'arrive pas à enregistrer ce changement dans ma table.
Lorsque que je recharge le formulaire avec mon datagrid, les
enregsitrements
sont toujours dans l'ordre Chine, Chat, Poisson.

Pourriez vous m'aidez car je suis bloquée et il faut que trouve une
solution
rapidement.
J'ai besoin de cela pour conserver l'ordre des lignes de commandes,
devis....
Merci par avance

C. Vidal










Avatar
Manu
Bonjour,
Peut etre que le champs qui se met pas à jour est une clé primaire ou dépend
d'une relation de Un a Plusieurs avec 'Integrité référentiel'.

Si ça peut aider.
Emmanuel.

"C. Vidal" a écrit dans le message de news:
eG$
Bonjour et merci de m'avoir répondu, je commençais à désespérer.
Je ne comprends pas bien votre réponse dans le sens où mon datagrid est
"lié" à ma table par un dataset.
Ce que je ne sais pas faire c'est comment mettre à jour le champ "Ordre"
(cf
mon exemple dans le message d'origine).

Je trouve cela un peu fou car je suis capable de mettre à jour les autres
champs de ma table à partir du datagrid, mais pas celui-ci.
J'ai lu quelque part que si le datagrid était trié, il fallait utiliser le
bindingManager pour pointer sue le bon enregistrement du dataset.
Je ne sais pas si cela peut être une solution, mais pourriez vous m'aider.
Merci par avance de votre aide
C. Vidal

"newscache3.freenet.de" a écrit dans le message de
news:
J'ai eu le meme probleme et on m'a repondu qu'il n'y a pas de lien entre
la table et le datagrid;

J'ai du tout programmer en considérant que la table était copiée dans le
datagrid et que je devais y mettre toutes les infos nécessaires pour m'y
retrouver en cas de tri utilisateur.

Gilbert

"C. Vidal" a écrit dans le message de
news:

Bonjour à tous,

Je viens vers vous une nouvelle fois car je bloque depuis longtemps sur
un
problème. J'ai posé plusieurs fois la question sur ces news, mais je ne
désespère pas que quelqu'un m'aide.

Voilà j'ai un datagrid qui contient le résultat d'une requête comme suit

Ligne ID Nom Ordre
1 1 Chien 1
2 3 Chat 2
3 4 Poisson 3

Comme le montre l'exemple, les enregistrements sont triés sur le champ
Ordre.
L'utilisateur a la possibilité de modifier l'ordre des enregsitrements
en
faisant glisser les lignes comme il le souhaite dans le datagrid. Par
exemple, on peut obtenir ceci :

Ligne ID Nom Ordre
1 4 Poisson 3
2 1 Chien 1
3 3 Chat 2

J'effectue un traitement qui me permet de mettre à jour le champ Ordre
dans
mon datagrid comme cela :

Ligne ID Nom Ordre
1 4 Poisson 1
2 1 Chien 2
3 3 Chat 3

Par contre, je n'arrive pas à enregistrer ce changement dans ma table.
Lorsque que je recharge le formulaire avec mon datagrid, les
enregsitrements
sont toujours dans l'ordre Chine, Chat, Poisson.

Pourriez vous m'aidez car je suis bloquée et il faut que trouve une
solution
rapidement.
J'ai besoin de cela pour conserver l'ordre des lignes de commandes,
devis....
Merci par avance

C. Vidal
















Avatar
newscache3.freenet.de
Le datagrid est effectivement "lié" à la table du dataset; néanmoins les
tris effectués sur le datagrid ne se répercutent pas sur le dataset. Quand
on met à jour le dataset, il faut faire attention au numéro de ligne.

Après un tri datagrid, il y a deconnexion entre le numero de ligne datagrid
et le numéro d'enregistrement datatable. J'ai trouvé une méthode un peu
lourde qui est de retrouver la position dans la datatable par un find.

Si on ajoute à ça le problème d'appel de la position dans une table :
me.bindingcontext(me.dataset.datatable).position renvoie toujours 0, il faut
utiliser
me.bindingcontext(me.dataset,"datatable").position

ca devient assez lour à gerer

Gilbert
Avatar
C. Vidal
Bonjour,
Pourriez vous me donner un exemple de la méthode que vous utilisez pour me
donner une idée.
Si vous estimez que cette méthode est trop lourde, pourriez vous me donner
une idée sur le moyen de réaliser ce que je souhaite à savoir :
- donner la possibilité à l'utilisateur la possibilité de choisir l'ordre
des lignes de son devis, facture...sans qu'il soit obliger de numéroter lui
même les lignes pour conserver cet ordre.
Merci d'avance pour votre aide.
J'ai absolument besoin de trouver une solution rapidement et je ne vois pas
d'issue.
C. Vidal

"newscache3.freenet.de" a écrit dans le message de
news: %
Le datagrid est effectivement "lié" à la table du dataset; néanmoins les
tris effectués sur le datagrid ne se répercutent pas sur le dataset. Quand
on met à jour le dataset, il faut faire attention au numéro de ligne.

Après un tri datagrid, il y a deconnexion entre le numero de ligne
datagrid et le numéro d'enregistrement datatable. J'ai trouvé une méthode
un peu lourde qui est de retrouver la position dans la datatable par un
find.

Si on ajoute à ça le problème d'appel de la position dans une table :
me.bindingcontext(me.dataset.datatable).position renvoie toujours 0, il
faut utiliser
me.bindingcontext(me.dataset,"datatable").position

ca devient assez lour à gerer

Gilbert



Avatar
newscache3.freenet.de
Le datagrid est lié à une datatable dans un dataset, cette table utlisant
un mécanisme de persistence (j'utilise SQL Server).
Je considere que la table a été chargée par:
me.SqlDataAdapter.fill(me.dataset.datatable)

Une fois le datagrid trié comme le souhaite votre utilisateur, une simple
boucle devrait suffire:

soit col, le numéro de la colonne du datagrid contenant (et lié au) champ
numéro de ligne de facture

for i=0 to dataset.datatable.count-1
datagrid(i,col)=i
next
me.bindingcontext(me.dataset,"datatable").endcurrentedit
me.SqlDataAdapter.update(me.dataset.datatable)