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

Windows Forms Discussion :

[VS2003] Remplir plusieurs ligne d'un dataGrid


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    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
    Par défaut [VS2003] Remplir plusieurs ligne d'un dataGrid
    Bonjour tout le monde,

    Voila, j'ai un dataGrid (représentant des articles dont l'entreprise à eu besoin pour l'intervention) qui se remplit de deux manière :
    * Tout d'abord grâce à une combo et des labels...
    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    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");
    			DateDispo.Checked=false;
    		}
     
    ArrayList liste = new ArrayList();
    		private void DesArt_SelectedIndexChanged(object sender, System.EventArgs e)
    		{
    			if(liste.Contains(DesArt.Text))
    			{
    				MessageBox.Show("déja existant");
    			}
    		}
     
    private void Qte_TextChanged(object sender, System.EventArgs e)
    		{
    			try
    			{
    				if(liste.Contains(DesArt.Text))
    				{
    				}
    				else
    				{
    					connection = new SqlConnection("Data Source=xpsp2-49f3e18f9;Initial Catalog=DistribInfo;Integrated Security=SSPI");
    					command = new SqlCommand("SELECT CONVERT(varchar(10), PD_PU_HT, 0) as PD_PU_HT FROM PIECE_DETACHEE WHERE PD_DESIGNART = '" + DesArt.Text + "'", connection);
    					connection.Open();
    					try
    					{
    						rader = command.ExecuteReader();
    						try
    						{
    							while (rader.Read()) 
    								label17.Text = Convert.ToString(rader["PD_PU_HT"]);
    						}
    						finally
    						{
    							rader.Close();
    						}
    					}
    					finally
    					{
    						connection.Close();
    					}
     
    					connection = new SqlConnection("Data Source=xpsp2-49f3e18f9;Initial Catalog=DistribInfo;Integrated Security=SSPI");
    					command = new SqlCommand("SELECT CONVERT(varchar(10), PD_PU_TTC, 0) as PD_PU_TTC FROM PIECE_DETACHEE WHERE PD_DESIGNART = '" + DesArt.Text + "'", connection);
    					connection.Open();
    					try
    					{
    						rader = command.ExecuteReader();
    						try
    						{
    							while (rader.Read()) 
    								label18.Text = Convert.ToString(rader["PD_PU_TTC"]);
    						}
    						finally
    						{
    							rader.Close();
    						}
    					}
    					finally
    					{
    						connection.Close();
    					}
     
    					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);
    				}
    				Qte.Text = "";
    			}
    			catch(Exception ex)
    			{
    				MessageBox.Show(ex.ToString());
    			}
    			finally
    			{
    				connection.Close();
    			} 
    		}
    * Puis, si des articles sont déja dans la base alors voici le code pour remplir ce dataGrid :
    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é, CONVERT(varchar(10), PC_PU1MOMEN, 0) as PU_HT, CONVERT(varchar(10), PC_PU2MOMEN, 0) as PU_TTC, PC_REMISE as remise FROM PIECE_DETACHEE, PIECE_CONSOMMEE WHERE PIECE_DETACHEE.PD_CODART = PIECE_CONSOMMEE.PC_CODART AND PC_NUMINTER = '" + NumInter.Text + "'");
    			connection = new SqlConnection("Data Source=xpsp2-49f3e18f9;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();
    			}
    Mon problème est le suivant :
    * Si des articles existe déja dans la base alors, le tableau se remplit(ça sans problème) mais si ensuite, je veux rajouter des articles en plus alors la problème, ça efface les existant.

    Donc comment dois-je faire pour que ceux que je souhaite rajouter, se mette à la suite??

    Merci d'avance!!
    J'ai vraiment besoin de votre aide s'il vous plais!!

  2. #2
    Membre éprouvé
    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
    Par défaut éclaircissement sur le problème.
    Je récapitule car je ne me trouve pas trés clair : Je souhaiterais faire en sorte que les articles supplémentaires s'ajoute à la suite des autres.
    Donc en gros, je souhaite savoir choses :
    * Comment faire pour obtenir la dernière ligne remplie??
    * Comment faire pour rajouter la ligne se situant en dessous de la dernière ligne rempli??

    Assez urgent, donc si vous avez des idées, n'hésiter vraiment pas!!

    Merci d'avance!!
    Loic.

  3. #3
    Membre éprouvé
    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
    Par défaut
    Bonjour,

    J'ai analysé mon problème et aprés mainte reflexion je souhaiterais avoir des renseignements sur les choses suivantes.

    Je souhaite remplir mon dataGrid à l'aide d'une requête qui est composé de 2 tables. Je suis en mode connecté.

    * Est-il donc possible de remplir mon dataGrid à l'aide de "ArrayList"?? Si oui, de quel manière procédé vous??
    Car j'ai essayé cela mais ça fonctionne pas.
    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
    ArrayList liste = new ArrayList();
    		private void NumInter_SelectedIndexChanged(object sender, System.EventArgs e)
    		{
    			string myReq;
    		//	string PieceDetachee = ("SELECT PD_DESIGNART as Désignation, PC_QTECONSO as quantité, CONVERT(varchar(10), PC_PU1MOMEN, 0) as PU_HT, CONVERT(varchar(10), PC_PU2MOMEN, 0) as PU_TTC, PC_REMISE as remise FROM PIECE_DETACHEE, PIECE_CONSOMMEE WHERE PIECE_DETACHEE.PD_CODART = PIECE_CONSOMMEE.PC_CODART AND PC_NUMINTER = '" + NumInter.Text + "'");
    			connection = new SqlConnection("Data Source=toshiba-3;Initial Catalog=DistribInfo;Integrated Security=SSPI");
    			command = new SqlCommand("SELECT PD_DESIGNART as Désignation, PC_QTECONSO as quantité, CONVERT(varchar(10), PC_PU1MOMEN, 0) as PU_HT, CONVERT(varchar(10), PC_PU2MOMEN, 0) as PU_TTC, PC_REMISE as remise FROM PIECE_DETACHEE, PIECE_CONSOMMEE WHERE PIECE_DETACHEE.PD_CODART = PIECE_CONSOMMEE.PC_CODART AND PC_NUMINTER = '" + NumInter.Text + "'", myReq);
    			connection.Open();
    			try
    			{			
    			   dataGrid3.DataSource = dt; 
    			   liste.Add(command);
    			}
    			catch(Exception ex)
    			{
    				MessageBox.Show(ex.ToString());
    			}
    		}
    F:\Distrib(test)\Distrib\Distrib\Form1.cs(254): Argument '2'*: impossible de convertir de 'string' en 'System.Data.SqlClient.SqlConnection'
    F:\Distrib(test)\Distrib\Distrib\Form1.cs(254): La méthode surchargée correspondant le mieux à 'System.Data.SqlClient.SqlCommand.SqlCommand(string, System.Data.SqlClient.SqlConnection)' possède des arguments non valides
    Merci d'avance pour votre aide.

Discussions similaires

  1. Réponses: 0
    Dernier message: 21/05/2014, 19h41
  2. Réponses: 4
    Dernier message: 27/04/2013, 22h15
  3. Réponses: 10
    Dernier message: 22/07/2011, 16h20
  4. [MySQL] Remplir plusieurs lignes d'une seule table avec le même formulaire
    Par zehni dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 07/09/2006, 12h12
  5. Réponses: 4
    Dernier message: 07/09/2006, 12h12

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