Data row et c# (enregistrement en base de données)

caela Messages postés 68 Date d'inscription mercredi 9 décembre 2009 Statut Membre Dernière intervention 19 avril 2012 - 21 déc. 2009 à 13:36
 Widy1234 - 8 avril 2013 à 19:18
Bonjour j'ai besoin de votre aide voilà j'ai un
datagridview chargé à partir d'une base, et j'ai un bouton ajout, quand j'appuis sur le bouton, une ligne s'ajoute à mon datagridview, mais ça ne s'ajoute pas à ma base, voici le code de mon bouton:
private void btnok_Click(object sender, EventArgs e)
{
DataRow dr;
dr = lCTDataSet.Tables["AVION"].NewRow();
dr["Matricule_avion"] = txtmatr.Text;
dr["nom_type"] = txtnomtype.Text;
dr["type_courrier"] = txtcourrier.Text;
dr["année_obtention"] = txtannee.Text;
dr["tonnage"] = txttonnage.Text ;
lCTDataSet.Tables["AVION"].Rows.Add(dr);
lCTDataSet.AcceptChanges();
}
merci de m'aider!

4 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
21 déc. 2009 à 20:42
salut,

C'est normal, il manque la notion de dataadapter et le update sur ce dernier.

Pour rappel, le dataset, datatable et datarow = représentation en mémoire.

newrow --> State = detached
rows.add --> State = added
acceptchanges --> State = unchanged

le update permet de mettre à jour les données de la datatable
qui sont en etat added, deleted, modified dans la base de données

Les detached et les unchanged ne sont pas modifiée en base de données.

Appuies-toi sur cette explication et les tutoriels sur les dataadapter pour resoudre ton problème.

Bon dev.
0
zouariahmedtn Messages postés 6 Date d'inscription mardi 20 septembre 2011 Statut Membre Dernière intervention 16 mars 2012
15 mars 2012 à 11:09
0
zouariahmedtn Messages postés 6 Date d'inscription mardi 20 septembre 2011 Statut Membre Dernière intervention 16 mars 2012
15 mars 2012 à 11:13
Salut,
J'ai eu le méme problème que "Caela" même j'ai fait l'appel au méthode update de TableAdaptater mais rien n'a changé merci de m'aider s.v.p
Voila le code:
DataRow oDataRow;
oDataRow = lecture_labialDataSet.Tables["locuteur"].NewRow();
MessageBox.Show("Statue initial du row"+oDataRow.RowState);
lecture_labialDataSet.Tables["locuteur"].Rows.Add(oDataRow);
// Mise à jour de la source de données à partir du DataSet
locuteurTableAdapter.Update(lecture_labialDataSet.locuteur);
locuteurBindingSource.EndEdit();
this.Validate();
//---

//oDataRow["loc_id"] = 3;
oDataRow["loc_nom"] = nom;
oDataRow["loc_prenom"] = prenom;
MessageBox.Show("Statue avant acept changes" + oDataRow.RowState);
lecture_labialDataSet.Tables["locuteur"].AcceptChanges();
0
Bonjour !
aussi J'ai eu le même problème ! voila Mon code et même si j'utilise dataAdapter ! rien n'a changé ! Merci bien pour votre aide !
private void Ajouter_Click(object sender, EventArgs e)
{

//ajouter
DataRow dr = ds.Tables["Deprt"].NewRow();

dr[0] = DBNull.Value;
dr[1] = textBox1.Text;
dr[2] = textBox2.Text;

ds.Tables["Deprt"].Rows.Add(dr);
MessageBox.Show("Bien ajouter");
da.InsertCommand = new SqlCommand();
da.InsertCommand.Connection = cn;
da.InsertCommand.CommandText = "insert into DEPARTMENTS values " + comboBox1.SelectedItem + "','" + textBox1.Text + "','" + textBox2.Text + "','";

SqlCommandBuilder cmb = new SqlCommandBuilder(da);
da.Update(ds, "Deprt");
}
0
Rejoignez-nous