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 :

[C#] Remplir un datagrid en dble clic sur un autre datagrid


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 77
    Par défaut [C#] Remplir un datagrid en dble clic sur un autre datagrid
    Bonjour,

    voila mon ptit problemes c'est que j'ai un datagrid avec des donnée affiché d'une base. en cliquant sur une des lignes je vourrais recopier cette ligne dans l'autre datagrid afin de les sauvegardes .

    j'ai donc fait mon code, mais il me mets l'erreur suivante :

    " la référence objet n'est pas définie à une instance objet " .


    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
     
    namespace WindowsApplication11
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
     
            DataSet ds_articles;
            DataSet ds_a_sauvegarder;
     
     
            public string sqlcon = @"Server=ACERFERRARI\SQLExpress; Integrated Security=SSPI; Connection Timeout=10; Database=DEVIS;User ID=ACERFERRARI\Ced;password=";
     
     
            private void Form1_Load(object sender, EventArgs e)
            {
     
                try // try sert a detecter les erreur ( avec catch )
                {
                    ds_articles = new DataSet();
                    SqlDataAdapter adaptater = new SqlDataAdapter("SELECT * FROM articles WHERE (famille_art = N'Cartes Mères')", sqlcon);
                    adaptater.Fill(ds_articles, "articles");
     
                    dataGridView1.DataSource = ds_articles.Tables[0];
     
                }
                catch (System.Data.SqlClient.SqlException ex)
                {
                    MessageBox.Show(ex.Message, "Erreur SQL");
                }
     
            }
     
            private void gridView1_DoubleClick(object sender, EventArgs e)
            {
                // si la grille affichage contient des lignes
                if (gridView_affiche.RowCount > 0)
                {
                    // Ajoute une ligne vide
                    gridView_a_sauvegarder.AddNewRow();
     
                    // Rempli les valeurs pour les differentes colonnes
                    gridView_a_sauvegarder.SetRowCellValue(gridView_a_sauvegarder.FocusedRowHandle, gridView_a_sauvegarder.Columns["Column_famille_art"], gridView_affiche.GetRowCellValue(gridView_affiche.FocusedRowHandle, gridView_affiche.Columns["famille_art"]).ToString());
                    gridView_a_sauvegarder.SetRowCellValue(gridView_a_sauvegarder.FocusedRowHandle, gridView_a_sauvegarder.Columns["Column_desig_art"], gridView_affiche.GetRowCellValue(gridView_affiche.FocusedRowHandle, gridView_affiche.Columns["desig_art"]).ToString());
                    gridView_a_sauvegarder.SetRowCellValue(gridView_a_sauvegarder.FocusedRowHandle, gridView_a_sauvegarder.Columns["Column_marque_art"], gridView_affiche.GetRowCellValue(gridView_affiche.FocusedRowHandle, gridView_affiche.Columns["marque_art"]).ToString());
     
                    // Termine la maj de la ligne
                    gridView_a_sauvegarder.UpdateCurrentRow();
                }
            }
     
            private void dataGridView2_Click(object sender, EventArgs e)
            {
     
            }
        }
    }

  2. #2
    Membre Expert Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Par défaut
    Quelle ligne l'erreur ?

    Et comment il peut compiler ton programme ?
    Y'a un gridView_affiche et un gridView_a_sauvegarder qui ne sont pas définis.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 77
    Par défaut
    voici une capture du prog. pas de numero de ligne. sinon le programme se lance bien.
    Images attachées Images attachées  

  4. #4
    Membre Expert Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Par défaut
    Ahhhhh une message box. bah il suffisait de le dire, on peut pas l'inventer

    Ce qui est curieux, c'est que dans ton code, la message box que tu créé (après la récupération des données en base), tu lui met "Erreur SQL" en titre, alors que dans ta copie d'écran, le titre n'est pas le même.

    Question : où est déclenchée l'erreur ? Une petite exécution avec des points d'arrêt bien choisis te donneront la solution. Tu sais te servir du débugger de VS.Net ?

    Elle apparait quand ton erreur ? lorsque tu double click ?

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 77
    Par défaut
    Ui j'aurais pu preciserr que c'etait une message box.

    Sinon voila mon erreur ce situe comme tu le vois sur l'image a moment de la copie.

    hé oui c juste apres le double click que viens l'erreur.
    Images attachées Images attachées  

  6. #6
    Membre Expert Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Par défaut
    Mouaip.. je vois pas le pb.
    Je serais toi je découperait la ligne incriminée pour voir lequel de mes paramètre est nul :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    // le row affiché
    int rowaff = gridView_affiche.FocusedRowHandle;
    // la colonne associée
    DataColumn colaff = gridView_affiche.Columns["desig_art"];
    // on récupère la valeur affichée
    object value = gridView_affiche.GetRowCellValue(rowaff, colaff);
     
    // le row a sauver
    int rowsave = gridView_a_sauvegarder.FocusedRowHandle;
    // la colonne associée
    DataColumn colsave = gridView_a_sauvegarder.Columns["Column_desig_art"];
    // on sauvegarde la valeur
    gridView_a_sauvegarder.SetRowCellValue(rowsave, colsave, value.ToString());

Discussions similaires

  1. Remplir un champ selon le clic sur un élément
    Par signe22 dans le forum jQuery
    Réponses: 1
    Dernier message: 02/01/2014, 17h58
  2. [POO] Modif value champ suite clic sur un autre
    Par hari37 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 05/11/2008, 10h11
  3. [DataGrid] Intercepter le clic sur en-tête de colonne
    Par david71 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 04/07/2007, 10h52
  4. Réponses: 11
    Dernier message: 11/08/2006, 16h52
  5. Réponses: 7
    Dernier message: 24/07/2006, 15h11

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