[Web Service] syncronisation entre listbox et dataset
3 réponses
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
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
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
"zelastwarrior" <zelastwarrior@discussions.microsoft.com> wrote in message
news:A9DEC467-A146-4956-9C28-24EA70545D37@microsoft.com...
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
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
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); } } } }
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);
}
}
}
}