Inserer plusieurs lignes en une seule requete ??

cs_greg63 Messages postés 22 Date d'inscription dimanche 3 août 2003 Statut Membre Dernière intervention 16 décembre 2011 - 20 mai 2005 à 16:26
Mimoza222 Messages postés 14 Date d'inscription lundi 11 juillet 2005 Statut Membre Dernière intervention 23 avril 2008 - 15 sept. 2005 à 10:45
Salut a tout l'monde, j'ai un petit souci avec une base access en C# :
je souhaite faire plusieurs INSERT a la suite, mais j'aimerais avoir a
faire le moins d'acces a la BDD possible (pour une question de rapidité
d'execution) ! Donc ma question est : est ce possible d'inserer
plusieurs lignes en une seule requete ? Ou bien est ce que l'on peut
importer des données a partir d'un fichier texte dans une base access ?

Merci de vos réponses !

6 réponses

taoetc Messages postés 346 Date d'inscription lundi 8 septembre 2003 Statut Membre Dernière intervention 3 septembre 2007 3
20 mai 2005 à 16:52
Tu dois pouvoir utiliser une requete du style IMPORT avec le nom de ton fichier texte ou une ligne corresopnd à un enregistrement, et délimiter les colonnes , apres, il faut aller voir dans l'aide de acces, pour voir ce qu'il accepte comme requete, et comment définir la fonction IMPORT.
Ceci est possible avec lea plupart des SGBD, et meme si Acces, c'est un peu tout pourri sur certain point, ca peut pas etre totalement pourri.

Mais ta question n'était pas vraiment du c#

En c#, en remplissant une datatable , tu peux faire un insert des lignes directement dans ta base. Apres le comment exactement, à toi de voir .
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
20 mai 2005 à 16:56
Salut,

Tu auras peut être des réponses plus pointues en demandant sur le forum de SQLfr.com :-)

Cocoricoooooooo !!!!
coq
MVP Visual C#
0
Never_Summer Messages postés 16 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 11 octobre 2005
24 mai 2005 à 15:03
Ben écoute, en fait tu ne peu fair qu'un seul inserte par table :(

donc le mieux c de crée plusieur stringquery, que tu va inserer une après l'autre

un stringquery = un inserte dans UNE seule table.

voila un pti bout de code, pour une meilleur explication

j'utilise un classe config dans laquelle se trouve la chaine de connexion
et la connexion et de type ODBC


OdbcConnection cn =
null ;


OdbcCommand cmdInsert ;
OdbcCommand cmdInsert2 ; //tu doi cée autan de commande que tu a d'insert

string queryInsert 1;
string queryInsert 2 ;
...

try
{
cn =
new OdbcConnection(config.connectionString()) ;
cn.Open() ;


queryInsert = "INSERT INTO [Table]([Colone])"+
" VALUE ([donnée])" ;
queryInsert2 = "INSERT INTO ...

cmdInsert =
new OdbcCommand(queryInsert,cn) ;
cmdInsert2 = new OdbcCommand(queryInsert2,cn) ;


cmdInsert.ExecuteNonQuery() ;
cmdInsert2.ExectueNonQuery() ;
}



catch(OdbcException ex)


{


MessageBox.Show(ex.ToString()) ;


}



finally


{



if(cn !=
null)


{


cn.Close();


}


}


}



Voila en espèrant que sa puisse taider
0
cs_greg63 Messages postés 22 Date d'inscription dimanche 3 août 2003 Statut Membre Dernière intervention 16 décembre 2011 1
24 mai 2005 à 20:02
Merci bien, mais du coup, j'ai qd meme plusieurs acces a la base de données, et en fait, c'est ce que je souhaiterais eviter !!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Never_Summer Messages postés 16 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 11 octobre 2005
25 mai 2005 à 14:38
ben pour fair des insert, tu es obliger!

et en utilisant le bout de code donnée o dessu, tu ne fai k'une
connection pour 10 insert si tu veu, vu ke le début de la connection c
le cn.open.



donc voila si tu trouve meilleur solution, je veu bien l avoir aussi :)



a plus
0
Mimoza222 Messages postés 14 Date d'inscription lundi 11 juillet 2005 Statut Membre Dernière intervention 23 avril 2008
15 sept. 2005 à 10:45
Je pense que si tu veut avoir un seul acces a ta base de donnée construit une "grande" requète.

Du style : "requète1 ; requète2; ..." et normalement ca passe. Par
contre si tes requète ne sont pas bonne ca va etre plus difficile a
trouver la quel, c'est tou.

@+
0
Rejoignez-nous