HELP Probléme avec ligne précédente et suivante !!!!

Résolu
Aurore1205 Messages postés 19 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 18 novembre 2004 - 18 nov. 2004 à 11:11
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 - 18 nov. 2004 à 17:33
Bonjour à tous,
J'ai un petit probléme.
Je vous explique j'ai un formulaire celui ci est fait pour lire une table (select * from medecin).

Dans ce formulaire j'ai des champs Num_Medecin, Nom_Medecin...
Et 2 boutons "Elements précédents" et "Elements suivants".

Mon probléme est le suivant je ne sais pas comment faire pour passer d'un élement à l'autre. C'est à dire d'une ligne de ma table à l'autre.

J'ai vu qu'un message etait poster à ce sujet mais j'ai pas tout compris c'est pour ca que je me permet de le redemander!!!!

Merci d'avance à celui et celle qui me donnera la solution

Aurore

23 réponses

Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
18 nov. 2004 à 15:38
Hello,

donc en gros tu utilise un dataset et un datagrid pour afficher tes données.....

si telle est le cas tu peux faire :

//Code pour le precedent (dg etant ta datagrid)
try
{
dg.UnSelect(dg.CurrentRowIndex);
int position = dg.CurrentRowIndex - 1;
if(position < 0)
{
position = 0;
}
dg.CurrentRowIndex = position;
dg.Select(dg.CurrentRowIndex)
}
catch
{
}
//Code pour le suivant
try
{
dg.UnSelect(dg.CurrentRowIndex);
int nb_ligne = ((System.Data.DataTable) dg.DataSource).Rows.Count;
int position = dg.CurrentRowIndex + 1;
if(position > nb_ligne)
{
position = nb_ligne - 1;
}
dg.CurrentRowIndex = position;
dg.Select(dg.CurrentRowIndex);
}
catch
{
}


Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
3
Aurore1205 Messages postés 19 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 18 novembre 2004
18 nov. 2004 à 11:11
Excusez moi j'ai oublié de vous dire que je developpe en Csharp !!!!!!!!!

AuroreAurore
0
Aurore1205 Messages postés 19 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 18 novembre 2004
18 nov. 2004 à 15:46
Merci beaucoup!!!!

Par contre comment je fais pour afficher dans mes textBox les champs correspondants???

TextBox1=MedNum
TextBox2=MedLib
...
...
...
Car je n'ai pas accés au champs dans mon DataGrid????

Aurore
0
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
18 nov. 2004 à 15:51
tu peux faire du datatbinding :

//Databinding sur les textbox
Binding Bind_Compteur = new Binding("Text", ds.Tables["MA_TABLE"], "NOm_CHAMP_COMPTEUR);
Binding Bind_Code = new Binding("Text", ds.Tables["MA_TABLE"], "NOM_CHAMP_CODE);

txt_compteur.DataBindings.Add( Bind_Compteur );
txt_code.DataBindings.Add( Bind_Code );

Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
18 nov. 2004 à 15:53
Attention toutefois avant de lancer un update tu doit faire un

txt_code.DataBindings["Text"].BindingManagerBase.EndCurrentEdit(); 
txt_compteur.DataBindings["Text"].BindingManagerBase.EndCurrentEdit(); 
//Autant de fois que du a de binding sur tes textbox, ca force le dataset a prendre les infos saisie dans les textbox....

Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
0
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
18 nov. 2004 à 15:55
dans mes bindong j'ai oublié un " avant la derniere parenthese....

Binding Bind_Compteur = new Binding("Text", ds.Tables["MA_TABLE"], "NOm_CHAMP_COMPTEUR");

Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
0
Aurore1205 Messages postés 19 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 18 novembre 2004
18 nov. 2004 à 16:15
En fait c'est pas un datagrid que j'utilise c'est plus compliqué que ca je marche avec les couches DATA,DAL et BLL.

Donc j'ai une classe data "CollMedecin" qui est apellé avec la BLL LireMedecin().

Et je peux pas convertir un datagrid avec un Classe DATA.

Donc là je sais vraiment pas m'en dépatouiller!!!!

PS: Je débute en C# (comme tu peux le remarquer sans doute!!)
;-)

Aurore
0
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
18 nov. 2004 à 16:19
????DATA????DAl????BLL?????

c koi du webform ou winform ???

tu peux poster un exemple de code ???

style ton lireMedecin...

on debute tous un jour....
apres on va sur code sources...
et on devient grand ...
enfin plus grand qu'au debut :o))))

Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
0
Aurore1205 Messages postés 19 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 18 novembre 2004
18 nov. 2004 à 16:21
EXEMPLE DE DATA

using System;
using System.Collections;

namespace sstModel
{
/// <summary>
/// Description résumée de CollMedecinData.
/// </summary>
public class CollMedecinData: ArrayList
{
public CollMedecinData()
{
//
// TODO : ajoutez ici la logique du constructeur
//
}
public override int Add (object Value)
{
throw new ApplicationException ("Type non valide");
}
public int Add (MedecinData Value)
{
return base.Add (Value);
}
public override object this [int index]
{
get {return base [index];}
set
{
if ((value as MedecinData )==null)
{
throw new ApplicationException ("Type non valide");
}
base [index]=value;
}
}
}
}

Aurore
0
Aurore1205 Messages postés 19 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 18 novembre 2004
18 nov. 2004 à 16:21
EXEMPLE DE BLL

public CollMedecinData LireMedecin()
{
MedecinDAL med = new MedecinDAL();
CollMedecinData medecins;

medecins = med.LireMedecin();

return medecins;
}
AuroreAurore
0
Aurore1205 Messages postés 19 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 18 novembre 2004
18 nov. 2004 à 16:22
EXEMPLE DE DAL

public CollMedecinData LireMedecin()
{
MedecinData medecin = null;
CollMedecinData medecins = new CollMedecinData();

SqlDataReader reader = null;

// Crée la Connection et l'objet command
SqlConnection MaConnexion = null;
SqlCommand MaCommande = null;

try
{
MaConnexion=SSTConnexion.GereConnexion.GetConnection();
MaCommande = new SqlCommand("LireMedecin", MaConnexion);

// La Command est de type procstock
MaCommande.CommandType = CommandType.StoredProcedure;
// On execute la commande
reader = MaCommande.ExecuteReader();
while (reader.Read())
{
medecin = InitObjectMedecinData(reader);
medecins.Add(medecin);
}
return medecins;
}
catch (Exception e)
{
throw (e);
}
finally
{
if (reader != null) reader.Close();
if (MaConnexion != null)
{
GereConnexion.ReleaseConnection();
}
if (MaCommande!=null)
MaCommande.Dispose();
}
}
Aurore
0
Aurore1205 Messages postés 19 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 18 novembre 2004
18 nov. 2004 à 16:23
Et j'ai une procédure stockée dans ma base qui est une requête

"LireMedecin" et qui fait un SELECT * FROM MEDECIN

Je sais pas si c'est trés clair!!!

Aurore
0
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
18 nov. 2004 à 16:29
ha ok je vois.....

tu utilise une arraylist pour stocker le resultat de ta requete....

est ce que cette arraylist est vitale.....

parcqu'il y aurait un myen plus simple c'est d'utiliser un dataset, rempli avec un sqldataadapter et tu peux lie ton dataset a un datagrid pour afficher tes données....

en clair ton programme y doit faire quoi???

juste afficher les medecin dispo???ou pouvoir les mettre a jour, effacer etc...

Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
0
Aurore1205 Messages postés 19 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 18 novembre 2004
18 nov. 2004 à 16:31
Mon progaramme doit juste affichier les médecins.

Mais comment je fais ce que tu me dis??
Je procéde comment??
Car je veux garder ma procédure stockée je ne veux aucune requete en dur dans mon code!!!

Aurore
0
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
18 nov. 2004 à 16:36
Laisse mon un petit peu de temps et je te poste un exemple...
sans requete en dur (enfin juste le nom de ta procedure stockée)

Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
0
Aurore1205 Messages postés 19 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 18 novembre 2004
18 nov. 2004 à 16:39
Merci beaucoup je te fais perdre surement un peu de ton temps!!!

C'est gentil de l'accorder !!!!!!

......
Aurore
0
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
18 nov. 2004 à 16:46
pani probleme c'est rapide....

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Data.SqlClient;

namespace Test_Mysql
{
/// <summary>
/// Description résumée de Form3.
/// </summary>
public class Form3 : System.Windows.Forms.Form
{
private System.Windows.Forms.DataGrid dataGrid1;
private System.Windows.Forms.Button button1;
/// <summary>
/// Variable nécessaire au concepteur.
/// </summary>
private System.ComponentModel.Container components = null;

//DECLARATION DU DATASET
private DataSet ds = new DataSet();
//CONNECTION
private SqlConnection MaConnect;
//Objet Command
private SqlCommand MaCmdSelect;
//DATAADAPTER
private SqlDataAdapter MonDataAdapter;

public Form3()
{
//
// Requis pour la prise en charge du Concepteur Windows Forms
//
InitializeComponent();

//
// TODO : ajoutez le code du constructeur après l'appel à InitializeComponent
//
}

/// <summary>
/// Nettoyage des ressources utilisées.
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}

#region Code généré par le Concepteur Windows Form
/// <summary>
/// Méthode requise pour la prise en charge du concepteur - ne modifiez pas
/// le contenu de cette méthode avec l'éditeur de code.
/// </summary>
private void InitializeComponent()
{
this.dataGrid1 = new System.Windows.Forms.DataGrid();
this.button1 = new System.Windows.Forms.Button();
((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).BeginInit();
this.SuspendLayout();
// 
// dataGrid1
// 
this.dataGrid1.DataMember = "";
this.dataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText;
this.dataGrid1.Location = new System.Drawing.Point(8, 8);
this.dataGrid1.Name = "dataGrid1";
this.dataGrid1.Size = new System.Drawing.Size(592, 440);
this.dataGrid1.TabIndex = 0;
// 
// button1
// 
this.button1.Location = new System.Drawing.Point(608, 16);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(75, 64);
this.button1.TabIndex = 1;
this.button1.Text = "Charge la liste des medecin";
this.button1.Click += new System.EventHandler(this.button1_Click);
// 
// Form3
// 
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(696, 462);
this.Controls.Add(this.button1);
this.Controls.Add(this.dataGrid1);
this.Name = "Form3";
this.Text = "Form3";
((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).EndInit();
this.ResumeLayout(false);

}
#endregion

private void button1_Click(object sender, System.EventArgs e)
{
try
{
//On définit l'objet connection
MaConnect = SSTConnexion.GereConnexion.GetConnection();
MaCmdSelect = new SqlCommand("LireMedecin", MaConnect);
MaCmdSelect.CommandType = System.Data.CommandType.StoredProcedure;

MonDataAdapter = new SqlDataAdapter(MaCmdSelect);

//On remlpli le dataset
MonDataAdapter.Fill(ds,"Liste_Medecin");

//on affecte le dataset au datagrid
dataGrid1.DataSource = ds.Tables["Liste_Medecin"];

}
catch(Exception xcp)
{
MessageBox.Show(xcp.Message);
}

}
}
}


Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
0
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
18 nov. 2004 à 16:48
bon a voir si ca marche chez toi...faudra peut etre rajouter des using....(notament pour ta méthode gereconnexion....)

comme tu le vois le code est minimal avec ca....

le dataset gere tout....
grace au dataadapter...

Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
0
Aurore1205 Messages postés 19 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 18 novembre 2004
18 nov. 2004 à 16:50
Oui merci je vais essayer tout ca et je te tiens au courant!!!!!

Mais en tout cas merci!!!!

:)

Aurore
0
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
18 nov. 2004 à 16:55
de rien....

pour traiter les données y a rien de mieux que les dataset et dataadapter....

ca evite de generer des classe comme tu l'as fait....et ca augmente la cadence de prod :o)))

Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
0
Rejoignez-nous