Modifier les valeur d'un datagridview à partir d'une autre form [Résolu]

Signaler
Messages postés
2
Date d'inscription
dimanche 21 septembre 2008
Statut
Membre
Dernière intervention
24 octobre 2008
-
Messages postés
2
Date d'inscription
dimanche 21 septembre 2008
Statut
Membre
Dernière intervention
24 octobre 2008
-
Bonjour à tous,

J'espère que je suis dans la bonne rubrique pour cette question!
Sous SharpDevelp je voudrais récupéré les valeurs d'une colonne en
particulier d'un datagridview dans une autre form (form2) avec des
texbox par exemple. Je souhaiterais mettre à jour les données du
datagridview à partir de la form2.

Form1:

void Form1Load(object sender, System.EventArgs e)
       {
 
conn.Open();             
        SqlDataAdapter da = new SqlDataAdapter ("SELECT * from TableUser",conn);
    DataSet ds = new DataSet();                        
    da.Fill(ds, "TableUser");         
    dataGridView1.DataMember = "TableUser";
    dataGridView1.DataSource=ds;
conn.Close(); 
}
 
 
void DataGridView1CellClick(object sender, DataGridViewCellEventArgs e)
        {
             
 
    if (dataGridView1.Columns[e..Name.Equals("Column2")) //Gets the value only if you click on the second column
 
  {
        string Name = dataGridView1.Rows[e..Cells[e..FormattedValue.ToString();
        string PhoneNum= dataGridView1.Rows[e..Cells[.Value.ToString();
        Fiche fiche=new Fiche();         
       fiche.name=Name;
       fiche.phonenum=PhoneNum;
    fiche.ShowDialog();       
         
    }}

Form2:

public string name = "";
      public string Name
        {
            get
            {
                return name;
            }
            set
            {
                name = value;
                
            }
        }     
      
      public string phonenum = "";
      public string PhoneNum
        {
            get
            {
                return phonenum;
            }
            set
            {
                phonenum = value;
                
            }
        }     
 
 
 
 
void FicheLoad(object sender, EventArgs e)
        {
            TextBox1.Text=name;
            label1.Text=phonenum;
        }
         
        void UpdateDatagridView1(object sender, EventArgs e)
        {
            DatagridForm datagridform= new DatagridForm();
            string updname=TexBox1.Text.ToString();
            datagridForm.newvalue=updname;
             
            this.Close();
        }
         
        void Button2Click(object sender, EventArgs e)
        {
            this.Close();
        }
J'espère que tous cela est clair et que vous pourrez me donner un coup de pouce, merci d'avance.

2 réponses

Messages postés
2
Date d'inscription
dimanche 21 septembre 2008
Statut
Membre
Dernière intervention
24 octobre 2008

Bonjour,

Merci pour ta réponse bubbathemaster mais j'ai contourner le problème de cette façon :

Form1:

void Form1Load(object sender, System.EventArgs e)
{

conn.Open();
SqlDataAdapter da = new SqlDataAdapter ("SELECT * from TableUser",conn);
DataSet ds = new DataSet();
da.Fill(ds, "TableUser");
dataGridView1.DataMember = "TableUser";
dataGridView1.DataSource=ds;
conn.Close();
}


void DataGridView1CellClick(object sender, DataGridViewCellEventArgs e)
{


if (dataGridView1.Columns[e..Name.Equals("Column2")) //Gets the value only if you click on the second column

{
string Name = dataGridView1.Rows[e..Cells[e..FormattedValue.ToString();
string PhoneNum= dataGridView1.Rows[e..Cells[.Value.ToString();
Fiche fiche=new Fiche();
fiche.name=Name;
fiche.phonenum=PhoneNum;
fiche.ShowDialog();
newvalue=fiche.getTextBoxValue();
dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value=newvalue;
}}

Form2:
public string getTextBoxValue()
{
return TextBox1.Text;
}
public string name = "";
public string Name
{
get
{
return name;
}
set
{
name = value;

}
}

public string phonenum = "";
public string PhoneNum
{
get
{
return phonenum;
}
set
{
phonenum = value;

}
}




void FicheLoad(object sender, EventArgs e)
{
label1.Text=name;
TextBox1.Text=phonenum;
}

void UpdateDatagridView1(object sender, EventArgs e)
{
this.Close();
}

void Button2Click(object sender, EventArgs e)
{
this.Close();
}


Je l'avoue c'est du bricolage mais cela marche à peut prés, maintenant je rencontre une autre difficculté; c'est la mise à jour de la base de données sql du dgv. Je me pose plusieurs questions, doit on faire la mise à jour à partir du dgv ou du DataTable?
Voici mon code pour remplir le dgv:

conn.Open();
SqlDataAdapter da = new SqlDataAdapter ("SELECT * from TableUser",conn);
DataSet ds = new DataSet();
da.Fill(ds, "TableUser");
dataGridView1.DataMember = "TableUser";
dataGridView1.DataSource=ds;
conn.Close();

//Boutton mise à jour de la bdd sql
void MAJ(object sender, EventArgs e)
{
try
{
conn.Open();
da.Update(ds,"TableUser");
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
conn.Close();
}
}

Mais j'ai un message d'erreur :

System.NullReferenceException: Object Reference not set to instance of an object at Form1.MAJ(object sender, EventArgs e)
Messages postés
339
Date d'inscription
dimanche 26 janvier 2003
Statut
Membre
Dernière intervention
25 mars 2009
4
Passe ta dgv en argument du constructeur de ta form2.

Question extrèmement récurrente. Cherche le forum.