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

[Web Service] syncronisation entre listbox et dataset

3 réponses
Avatar
zelastwarrior
bonjour,
j'ai développé un web service qui me retourne un dataset dans mon
application locale (une liste de contacts).
Une fois le dataset recu, je l'affecte au dataset de mon application.
Les noms de la colonne "nomcontact" sont affichés dans le list box grace a
ce code :

//reception dataset
datacontact = new localhost.pti5service().ListeContacts(1);
//configuration des paramètres du listbox pour le lier au dataset
listcontact.DataSource = datacontact.Tables[0];
listcontact.DisplayMember = "NOMCONTACT";
listcontact.ValueMember = "IDCONTACT";

je coupe ensuite la connection.
le problème est le suivant :
-quand je met à jour mon dataset (par exemple je modifie le prénom d'une
personne), le nom est supprimé du listbox.
mon souhait : est ce que quelqu'un peut m'expliquer comment cela se fait il
que je perd une ligne !!
(note la ligne n'est pas supprimé du dataset)

exemple:
g trois personnes:
1) personne1
2) personne2
3) personne3

-je modifie le 2).
-le 2) disparait de la liste (du listbox)
-je clique sur 1) ca m'affiche le 1)
-je clique sur le nouveau 2) (qui est le 3)) et la personne 2 apparait
modifiée.
-impossible donc de modifier le 3).

je me demandais donc si il y avait un moyen de synchronisé le listbox et le
dataset??
ou meme une simple aide suffirait
merci d'avance

nico

3 réponses

Avatar
Paul Bacelar
"zelastwarrior" wrote in message
news:
bonjour,
j'ai développé un web service qui me retourne un dataset dans mon
application locale (une liste de contacts).
Une fois le dataset recu, je l'affecte au dataset de mon application.
Les noms de la colonne "nomcontact" sont affichés dans le list box grace a
ce code :

//reception dataset
datacontact = new localhost.pti5service().ListeContacts(1);
//configuration des paramètres du listbox pour le lier au dataset
listcontact.DataSource = datacontact.Tables[0];
listcontact.DisplayMember = "NOMCONTACT";
listcontact.ValueMember = "IDCONTACT";

je coupe ensuite la connection.
le problème est le suivant :
-quand je met à jour mon dataset (par exemple je modifie le prénom d'une
personne), le nom est supprimé du listbox.
mon souhait : est ce que quelqu'un peut m'expliquer comment cela se fait


il
que je perd une ligne !!
(note la ligne n'est pas supprimé du dataset)

exemple:
g trois personnes:
1) personne1
2) personne2
3) personne3

-je modifie le 2).
-le 2) disparait de la liste (du listbox)
-je clique sur 1) ca m'affiche le 1)
-je clique sur le nouveau 2) (qui est le 3)) et la personne 2 apparait
modifiée.
-impossible donc de modifier le 3).

je me demandais donc si il y avait un moyen de synchronisé le listbox et


le
dataset??
ou meme une simple aide suffirait
merci d'avance

nico



Un bout de code SVP.

--
Paul Bacelar
Avatar
zelastwarrior
le bout de code :
//le dataset a été rempli grace au web service
//j'appuye sur le bouton mise a jour

private void btnupd_Click(object sender, System.EventArgs e)
{
//teste si un champs a été modifié
if(txtnom.Text != UnContact.getnom() || txtprenom.Text !=
UnContact.getprenom() || txtadr1.Text != UnContact.getadr1() ||
txtadr2.Text != UnContact.getadr2() || txtcp.Text != UnContact.getcp()
|| txtville.Text != UnContact.getville() ||
txttel.Text != UnContact.gettel() || txtfax.Text != UnContact.getfax()
|| txtport.Text != UnContact.getgsm() ||
txtmail.Text != UnContact.getmail() || txtcom.Text != UnContact.getcom())
{
string centre = "Voulez-vous modifier le contact '" +
datacontact.Tables[0].Rows[listcontact.SelectedIndex]["NOMCONTACT"].ToString() + "' ?";
string haut = "Confirmation modification";
DialogResult update =
MessageBox.Show(centre,haut,MessageBoxButtons.YesNo,MessageBoxIcon.Question);
if (update == DialogResult.Yes)
{
try
{
//changement de la forme du curseur
Cursor = Cursors.WaitCursor;
//modification des propriétés du dataset
DataRow myrow = datacontact.Tables[0].Rows[listcontact.SelectedIndex];
if(txtnom.Text != UnContact.getnom())
myrow["NOMCONTACT"] = txtnom.Text;
if(txtprenom.Text != UnContact.getprenom())
myrow["PRENOMCONTACT"] = txtprenom.Text;
if(txtadr1.Text != UnContact.getadr1())
myrow["ADR1CONTACT"] = txtadr1.Text;
if(txtadr2.Text != UnContact.getadr2())
myrow["ADR2CONTACT"] = txtadr2.Text;
if(txtcp.Text != UnContact.getcp())
myrow["CPCONTACT"] = txtcp.Text;
if(txtville.Text != UnContact.getville())
myrow["VILLECONTACT"] = txtville.Text;
if(txttel.Text != UnContact.gettel())
myrow["TELCONTACT"] = txttel.Text;
if(txtfax.Text != UnContact.getfax())
myrow["FAXCONTACT"] = txtfax.Text;
if(txtport.Text != UnContact.getgsm())
myrow["GSMCONTACT"] = txtport.Text;
if(txtmail.Text != UnContact.getmail())
myrow["MAILCONTACT"] = txtmail.Text;
if(txtcom.Text != UnContact.getcom())
myrow["COMCONTACT"] = txtcom.Text;
//--> fin modification
//validation des modification
//si je fais ces actions j'ai plus moyen de uploader les lignes modifiées
//Changes = datacontact.GetChanges();
//datacontact.Tables[0].AcceptChanges();
//remplissage de la classe contact
UnContact.Remplir(txtnom.Text,txtprenom.Text,txtadr1.Text,txtadr2.Text,txtcp.Text,txtville.Text,txttel.Text,txtfax.Text,txtport.Text,txtmail.Text,txtcom.Text);
Cursor = Cursors.Arrow;
MessageBox.Show("Modification
Réussie","Modification",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
catch(Exception erreur)
{// en cas d'erreur afficher message
MessageBox.Show(erreur.Message,"Erreur",MessageBoxButtons.OK,MessageBoxIcon.Stop);
}
}
}
}
Avatar
Paul Bacelar
Pourquoi le:

Changes = datacontact.GetChanges();
datacontact.Tables[0].AcceptChanges();

???
--
Paul Bacelar

"zelastwarrior" wrote in message
news:
le bout de code :
//le dataset a été rempli grace au web service
//j'appuye sur le bouton mise a jour

private void btnupd_Click(object sender, System.EventArgs e)
{
//teste si un champs a été modifié
if(txtnom.Text != UnContact.getnom() || txtprenom.Text ! > UnContact.getprenom() || txtadr1.Text != UnContact.getadr1() ||
txtadr2.Text != UnContact.getadr2() || txtcp.Text != UnContact.getcp()
|| txtville.Text != UnContact.getville() ||
txttel.Text != UnContact.gettel() || txtfax.Text != UnContact.getfax()
|| txtport.Text != UnContact.getgsm() ||
txtmail.Text != UnContact.getmail() || txtcom.Text != UnContact.getcom())
{
string centre = "Voulez-vous modifier le contact '" +



datacontact.Tables[0].Rows[listcontact.SelectedIndex]["NOMCONTACT"].ToString
() + "' ?";
string haut = "Confirmation modification";
DialogResult update >


MessageBox.Show(centre,haut,MessageBoxButtons.YesNo,MessageBoxIcon.Question)
;
if (update == DialogResult.Yes)
{
try
{
//changement de la forme du curseur
Cursor = Cursors.WaitCursor;
//modification des propriétés du dataset
DataRow myrow = datacontact.Tables[0].Rows[listcontact.SelectedIndex];
if(txtnom.Text != UnContact.getnom())
myrow["NOMCONTACT"] = txtnom.Text;
if(txtprenom.Text != UnContact.getprenom())
myrow["PRENOMCONTACT"] = txtprenom.Text;
if(txtadr1.Text != UnContact.getadr1())
myrow["ADR1CONTACT"] = txtadr1.Text;
if(txtadr2.Text != UnContact.getadr2())
myrow["ADR2CONTACT"] = txtadr2.Text;
if(txtcp.Text != UnContact.getcp())
myrow["CPCONTACT"] = txtcp.Text;
if(txtville.Text != UnContact.getville())
myrow["VILLECONTACT"] = txtville.Text;
if(txttel.Text != UnContact.gettel())
myrow["TELCONTACT"] = txttel.Text;
if(txtfax.Text != UnContact.getfax())
myrow["FAXCONTACT"] = txtfax.Text;
if(txtport.Text != UnContact.getgsm())
myrow["GSMCONTACT"] = txtport.Text;
if(txtmail.Text != UnContact.getmail())
myrow["MAILCONTACT"] = txtmail.Text;
if(txtcom.Text != UnContact.getcom())
myrow["COMCONTACT"] = txtcom.Text;
//--> fin modification
//validation des modification
//si je fais ces actions j'ai plus moyen de uploader les lignes modifiées
//Changes = datacontact.GetChanges();
//datacontact.Tables[0].AcceptChanges();
//remplissage de la classe contact



UnContact.Remplir(txtnom.Text,txtprenom.Text,txtadr1.Text,txtadr2.Text,txtcp
.Text,txtville.Text,txttel.Text,txtfax.Text,txtport.Text,txtmail.Text,txtcom
.Text);
Cursor = Cursors.Arrow;
MessageBox.Show("Modification
Réussie","Modification",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
catch(Exception erreur)
{// en cas d'erreur afficher message



MessageBox.Show(erreur.Message,"Erreur",MessageBoxButtons.OK,MessageBoxIcon.
Stop);
}
}
}
}