Prob d'insertion de données dans une base Access

HolyDev Messages postés 40 Date d'inscription jeudi 27 mars 2003 Statut Membre Dernière intervention 5 février 2008 - 11 juil. 2003 à 11:24
HolyDev Messages postés 40 Date d'inscription jeudi 27 mars 2003 Statut Membre Dernière intervention 5 février 2008 - 18 juil. 2003 à 11:53
Bonjour, voila j'essaye d'insérer des données dans une base Access en utilisant ce code :

string connStr = "provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:/bdd_SuiviOutillage.mdb";
string selStr ="SELECT * FROM tbl_Outil";
OleDbDataAdapter OAdapt= new OleDbDataAdapter(selStr,connStr);
OleDbConnect.Open();
DataSet Odata_set = new DataSet();
OAdapt.Fill(Odata_set,"cache");
DataRow Enregistrement = Odata_set.Tables["cache"].NewRow() ;

Enregistrement["NumDossier"] = TextNumDossier.Text ;
Enregistrement["DesignationDossier"] = TextDesignDossier.Text ;
Enregistrement["NumMat"] = TableauNumMat[ComboMat.SelectedIndex] ;
Enregistrement["TpsCycle"] = TextTpsCycle.Text ;
Enregistrement["NumGroupePresse"] = TableauNumGP[ComboPresse.SelectedIndex] ;
Enregistrement["DateFirstPiece"] = DateFirstPiece.Text ;
Enregistrement["DateEI"] = DateEI.Text ;
Enregistrement["DateDMS"] = DateDMS.Text ;
Enregistrement["DateDossier"] = DateDossier.Text ;
Enregistrement["NumCP"] = TableauNumCP[ComboCP.SelectedIndex] ;
Enregistrement["NumClient"] = TableauNumClient[ComboClient.SelectedIndex] ;
Enregistrement["NumCPC"] = TableauNumCPC[ComboCPC.SelectedIndex] ;

Odata_set.Tables["cache"].Rows.Add(Enregistrement) ;
OAdapt.Update(Odata_set, "cache") ;

Mais ca ne fonctionne, j'ai l'erreur :

Une exception non gérée du type 'System.InvalidOperationException' s'est produite dans system.data.dll
Informations supplémentaires : Update requiert un InsertCommand valide lors du passage de la collection DataRow avec de nouvelles lignes.

Merci d'avance

3 réponses

Miltiades Messages postés 233 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 25 octobre 2010
11 juil. 2003 à 16:00
Ton dataadapter sous sa forme actuelle ne possede pas de requete pour l'insertion, la modification et la suppression d'enregistrements :sad)

si tu t'y connais en sql tu peux les rentrer en dur:
il faut que tu crée un OleDBCommand pour chaque requete
que tu affecte aux propriétés
InsertCommand
UpdateCommand
DeleteCommand
de ton dataadapter

sinon tu peut essayer avec un objet CommandBuilder...

8-) Voila! C tout! 8-)
0
cs_space Messages postés 14 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 16 juillet 2003
14 juil. 2003 à 11:21
Moi j'ai réalisé mon update et ca donne ceci :

/// Connexion sur la bd
OleDbConnection cn = new OleDbConnection();
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;"+ "Data Source=bd1.mdb";
cn.Open();

string commande = "INSERT INTO Table1(Num,Titre,Genre,Format,NbrCd,Resume) VALUES("+nNum+",'"+textitre.Text+"','"+comboBoxGenre.Text+"','"+comboBoxFormat.Text+"',"+comboBoxNbCd.Text+",'"+textResume.Text+"');";
OleDbCommand cm = new OleDbCommand(commande,cn);
try
{
int x = cm.ExecuteNonQuery();
}
catch
{
MessageBox.Show("Erreur d'ajout !!!");
}

MessageBox.Show("Film bien ajouté dans la base de donnée","ok",MessageBoxButtons.OK,MessageBoxIcon.Information);

cn.Close();

this.Close();


Bonne lecture :)
0
HolyDev Messages postés 40 Date d'inscription jeudi 27 mars 2003 Statut Membre Dernière intervention 5 février 2008
18 juil. 2003 à 11:53
Merci bien ! ;)

le nounours c pour le test :-p
0
Rejoignez-nous