Enregistrer une table dans une base de données (DataTable dans fichier .mdb) ?
AnnihilatorSupernova
Messages postés19Date d'inscriptionmercredi 8 novembre 2000StatutMembreDernière intervention14 septembre 2005
-
25 août 2005 à 22:17
Pimpidon
Messages postés4Date d'inscriptionmercredi 17 mars 2010StatutMembreDernière intervention14 mars 2012
-
14 mars 2012 à 09:19
Voilà j'aimerais savoir comment faire pour enregistrer une variable de type DataTable dans un fichier .mdb (base de données Access).
J'ai essayé avec
string query = "INSERT INTO Table(col1,col2) VALUES(val1,val2);"
OleDbCommand comm = new OleDbCommand(query, oleDbConnection1);
oleDbConnection1.Open ();
comm.ExecuteNonQuery ();
oleDbConnection1.Close ();
en ayant créé une connexion oleDbConnection1 de type Jet 4.0 avec l'assistant, qui m'a dit que la connexion était ok !
Ceux qui savent le faire, pouvez vous me mettre un bout de code qui marche SVP ?
SharpMao
Messages postés1024Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention 7 juin 201069 26 août 2005 à 08:19
Hello,
Deux ou trois détails :
- Si tu mets VALUES(val1, val2), il ne sait pas de quoi il s'agit.
- Si tu travailles avec une DataTable, il vaut mieux ouvrir la connexion, tout insérer, et fermer la connexion.
Un exemple, où j'admets que col1 est un entier, et col2 un string :
oleDbConnection1.Open();
OleDbCommand comm = new OleDbCommand();
comm.connection = oleDbConnection1;
foreach(DataRow dr in dt) //dt is the DataTable
{
comm.CommandText = "INSERT INTO Table(col1, col2) VALUES("
+ (int)dr["col1"] + ", " + (string)dr["col2"] + ")";
comm.ExecuteNonQuery();
}
AnnihilatorSupernova
Messages postés19Date d'inscriptionmercredi 8 novembre 2000StatutMembreDernière intervention14 septembre 2005 26 août 2005 à 11:51
Lorsque je compile, j'ai une erreur : "l'instruction foreach ne peut pas agir sur des variables de type 'System.Data.DataTable', cas 'System.Data.DataTable' ne contient pas de définition pour 'GetEnumerator', ou est inaccessible."
Sinon pour le reste, merci c'est exactement ça et je n'ai pas d'erreur.
AnnihilatorSupernova
Messages postés19Date d'inscriptionmercredi 8 novembre 2000StatutMembreDernière intervention14 septembre 2005 26 août 2005 à 12:22
J'ai donc essayé
int i = 0;
oleDbConnection1.Open();
OleDbCommand comm = new OleDbCommand();
comm.connection = oleDbConnection1;
for (i = 0; i < Table.Rows.Count; i++)
{
comm.CommandText = "INSERT INTO Table(col1, col2) VALUES("
+ (int)Table.rows[i]["col1"] + ", " + (string)Table.Rows[i]["col2"] + ")";
comm.ExecuteNonQuery();
}
oleDbConnection1.Close();
mais cette fois-ci j'ai une autre erreur : "Une exception non gérée du type 'System.Data.OleDb.OleDbException' s'est produite dans system.data.dll."
Pimpidon
Messages postés4Date d'inscriptionmercredi 17 mars 2010StatutMembreDernière intervention14 mars 2012 14 mars 2012 à 09:19
Bonjour,
Mais dans le cas contraire, pour extraire des données sous forme de tableau d'un fichier .mdb en c++, Comment pourrais-je procéder sil vous plait??
Car je n'ai jamais testé et j'avoue ne pas savoir par ou commencer.....