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

eonice 2 Messages postés dimanche 21 septembre 2008Date d'inscription 24 octobre 2008 Dernière intervention - 21 sept. 2008 à 15:43 - Dernière réponse : eonice 2 Messages postés dimanche 21 septembre 2008Date d'inscription 24 octobre 2008 Dernière intervention
- 28 sept. 2008 à 00:08
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.
Afficher la suite 

2 réponses

Répondre au sujet
eonice 2 Messages postés dimanche 21 septembre 2008Date d'inscription 24 octobre 2008 Dernière intervention - 28 sept. 2008 à 00:08
0
Utile
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)
Commenter la réponse de eonice
bubbathemaster 342 Messages postés dimanche 26 janvier 2003Date d'inscription 25 mars 2009 Dernière intervention - 22 sept. 2008 à 22:25
-1
Utile
Passe ta dgv en argument du constructeur de ta form2.

Question extrèmement récurrente. Cherche le forum.
Commenter la réponse de bubbathemaster

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.