IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

[VS2003]Problème d'insertion dans DataGrid


Sujet :

C#

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut [VS2003]Problème d'insertion dans DataGrid
    Bonjour tout le monde,

    Mon application est lié à une base SqlServer2000.

    Dans mon application j'ai un dataGrid qui se remplit de la manière suivante si des articles(pieces_detachée) sont existant dans la base pour un numéro d'intervention sélectionné auparavant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    string PieceDetachee = ("SELECT PD_DESIGNART as Désignation, PC_QTECONSO as quantité, PC_PU1MOMEN as PU_HT, PC_PU2MOMEN as PU_TTC FROM PIECE_DETACHEE, PIECE_CONSOMMEE WHERE PIECE_DETACHEE.PD_CODART = PIECE_CONSOMMEE.PC_CODART AND PC_NUMINTER = '" + NumInter.Text + "'");
    			connection = new SqlConnection("Data Source=SNCK96400031;Initial Catalog=DistribInfo;Integrated Security=SSPI");
    			connection.Open();
    			try
    			{
    				SqlDataAdapter dataAdapter2 = new SqlDataAdapter(PieceDetachee, connection);
    				dataAdapter2.Fill(ds2,"PieceDetachee");
    				dataGrid3.DataSource = ds2;
    				dataGrid3.DataMember = "PieceDetachee";
    			}
    			catch(Exception ex)
    			{
    				MessageBox.Show(ex.ToString());
    			}
    			finally
    			{
    				connection.Close();
    			}
    Mais le dataGrid peut se remplir dans l'application de la manière suivante (à partir d'une combo correspondant au désignation d'article.):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    // Affiche les noms des colonnes
    private void SuiviIntervention_Load(object sender, System.EventArgs e)
    		{
    			dt = new DataTable();
    			dt.Columns.Add("Désignation");
    			dt.Columns.Add("quantité");
    			dt.Columns.Add("PU_HT");
    			dt.Columns.Add("PU_TTC");
    			dt.Columns.Add("Remise");
    		}
     
    private void DesArt_SelectedIndexChanged(object sender, System.EventArgs e)
    // Si l'article sélectionné existe alors message d'erreur
    		{
    			if(liste.Contains(DesArt.Text))
    			{
    				MessageBox.Show("déja existant");
    			}
    		}
     
    private void Qte_TextChanged(object sender, System.EventArgs e)	// remplissage du dataGrid	
    {
    try
    					{
    DataRow dr = dt.NewRow();
    					dr[0] = DesArt.Text;
    					dr[1] = Qte.Text;
    					dr[2] = label17.Text;
    					dr[3] = label18.Text;
    					dt.Rows.Add(dr);
    					dataGrid3.DataSource = dt; 
    					liste.Add(DesArt.Text);
    }
    catch(Exception ex)
    			{
    				MessageBox.Show(ex.ToString());
    			}
    			finally
    			{
    				connection.Close();
    			} 
    }
    Mon problème est le suivant : imaginon que des articles existe dans la base, donc sans problème il s'affiche dans le dataGrid ensuite, je décide de rajouter un nouveau article via la combo alors ça efface ceux qui été affiché auparavant dans le dataGrid.

    Comment je peux faire en sorte que les nouveaux articles s'affiche à la suite de ceux existant??
    Tout en sachant que je ne veux pas avoir 2 fois le même article dans le dataGrid vu qu'il y a déja une colonne "quantité"!!

    Merci d'avance!!

  2. #2
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut Explication du problème en image
    Bonjour tout le monde,

    Je vais vous présenter mon problème en image ce sera plus simples à comprendre je suppose.
    Pour visualiser les fenêtre voir le document word ci-joint.

    * Tout d'abord la fenêtre principale.
    * Ensuite, on choissit le numéro de l'intervention
    * Puis, lorsque je choisit l'intervention (2008/02/01-001), ça remplit les colonnes du dataGrid.
    * Pour finir, imaginon que l'on souhaite en rajouter, donc on choisi la désignation(combo désignation --> en bas à gauche) et on note la quantité (en bas à droite) ---> ET le problème c'est qu'il me retire les articles précédemment renseigné dans le dataGrid alors que je souhaiterais qu'elle se mette aprés.

    Voici le code qui permet de remplir le datagrid aprés avoir choisit le numéro des interventions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    string PieceDetachee = ("SELECT PD_DESIGNART as Désignation, PC_QTECONSO as quantité, PC_PU1MOMEN as PU_HT, PC_PU2MOMEN as PU_TTC FROM PIECE_DETACHEE, PIECE_CONSOMMEE WHERE PIECE_DETACHEE.PD_CODART = PIECE_CONSOMMEE.PC_CODART AND PC_NUMINTER = '" + NumInter.Text + "'");
    			connection = new SqlConnection("Data Source=SNCK96400031;Initial Catalog=DistribInfo;Integrated Security=SSPI");
    			connection.Open();
    			try
    			{
    				SqlDataAdapter dataAdapter2 = new SqlDataAdapter(PieceDetachee, connection);
    				dataAdapter2.Fill(ds2,"PieceDetachee");
    				dataGrid3.DataSource = ds2;
    				dataGrid3.DataMember = "PieceDetachee";
    			}
    			catch(Exception ex)
    			{
    				MessageBox.Show(ex.ToString());
    			}
    			finally
    			{
    				connection.Close();
    			}
    Voici le code qui créer les colonnes du dataGrid :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    private void SuiviIntervention_Load(object sender, System.EventArgs e)
    		{
    			dt = new DataTable();
    			dt.Columns.Add("Désignation");
    			dt.Columns.Add("quantité");
    			dt.Columns.Add("PU_HT");
    			dt.Columns.Add("PU_TTC");
    			dt.Columns.Add("Remise");
    		}
    Voici le code qui permet de préciser si l'article est déja dans le dataGrid :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    private void DesArt_SelectedIndexChanged(object sender, System.EventArgs e)
    		{
    			if(liste.Contains(DesArt.Text))
    			{
    				MessageBox.Show("déja existant");
    			}
    		}
    Et voici le code qui me permet de remplir le dataGrid lorsque l'on choisit un article via la combo des désignation et que l'on indique la quantité :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    private void Qte_TextChanged(object sender, System.EventArgs e)		
    {
    try
    					{
    DataRow dr = dt.NewRow();
    					dr[0] = DesArt.Text;
    					dr[1] = Qte.Text;
    					dr[2] = label17.Text;
    					dr[3] = label18.Text;
    					dt.Rows.Add(dr);
    					dataGrid3.DataSource = dt; 
    					liste.Add(DesArt.Text);
    }
    catch(Exception ex)
    			{
    				MessageBox.Show(ex.ToString());
    			}
    			finally
    			{
    				connection.Close();
    			} 
    }
    J'espère que cela est assez claire et avoir de l'aide rapidement!!

    Merci d'avance!!

  3. #3
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut relance de demande d'aide
    Bonjour,

    voila après mainte rflexion et recherche je ne trouve pas comment faire.

    Quelqu'un a t'il une idée pour faire en sorte de rajouter le choix des articles après les articles existant dans le dataGrid??

    Je vois vraiment pas, j'ai vraiment besoin de votre aide au plus vite s'il vous plais!!

    Merci d'avance!!

  4. #4
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut
    Bonjour,

    J'aifais un ti algo écrit pour régler mon problème mais j'arrive pas a le traduire en C#, j'espère que quelqu'un pourra m'aider :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // Code se situant derrière l'événement de la combo DesArt
    SI Tableau vide Alors
    Insérer désignation choisit par la combo
    SINON
    Rechercher dernière ligne remplit
    insérer désignation choisi par la combo à dernière ligne + 1
    Je pense que cette algo résume ce que je veux faire mais je n'arrive pas à traduire les choses écrite en rouge.

    Est-ce que qu'elqu'un a une idée!!

    Merci d'avance!!

Discussions similaires

  1. [Hibernate] problème d'insertion dans la base de données
    Par Willy7901 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 18/08/2005, 13h19
  2. Problème d'insertion dans zone de texte
    Par roots_man dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 06/06/2005, 11h21
  3. probléme d'insert dans une page asp !
    Par tomtom25 dans le forum ASP
    Réponses: 5
    Dernier message: 31/03/2005, 16h04
  4. Problème d'insertion dans la base.
    Par roots_man dans le forum ASP
    Réponses: 2
    Dernier message: 14/09/2004, 12h56
  5. Réponses: 2
    Dernier message: 01/06/2004, 12h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo