Récupérer les donnéees d'un dataset pour remplir une table

Signaler
Messages postés
48
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
6 juillet 2007
-
Messages postés
1182
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
-
Bonjour,
je débute sur Visual Studio et depuis un mois je n'arrive pas a résoudre un probleme... Je rempli un dataset a l'aide d'une table paradox (.db). Cette table se trouve dans un fichier de mon disque dur (et pas dans une base de données). Il faut ensuite que je rajoute les lignes de ce dataset dans une table de ma base de données SQL. Et je ne sais pas comment je dois procéder pour récupérer les données de mon dataset? Si quelqu'un pouvait m'aider, ce serait super aimable. Amicalement

Feuillou

8 réponses

Messages postés
1182
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
13
oui je pensais a ca ...
mais non je ne sais pas si tu peux le lancer a partir de visual studio, par contre tu peux les planifier sous SQL...
et ca marche bien comme importateur...
maintenant si tu dois absolument le faire sous C# a part se palucher tout les insert a la main en parcourant ton dataset je vois pas comment faire ...

Arthenius
Messages postés
1182
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
13
alors pour lire une ligne d'un data set (par exemple) :

DataRow ligne = null ;
int i = 0;
int nb_ligne_total ;
nb_ligne_total = dataSetparadox.Tables["NOM_DE_LA_TABLE"].Rows.Count ;

for(i=0;i<=nb_ligne_total;i++)
{
ligne = dataSetparadox.Tables["NOM_DE_LA_TABLE"].Rows[i];
}


et dans l'idee tu pourrai faire un 2eme dataset qui pointe sur ta table SQL...
en vérifiant que les commandes insert, update,..., delete du sqldataadapter sont bien correct (normalement oui si tu a utiliser le glisser deplacer de la table avec l'explorateur serveur sauf pour le select qu'il faudra peut etre definir)

et faire un truc du genre :

DataRow ligne = null ;
DataRow ligneSQL = null ;
int i = 0;
int nb_ligne_total ;

nb_ligne_total = dataSet11.Tables["NOM_DE_LA_TABLE"].Rows.Count ;

for(i=0;i<=nb_ligne_total;i++)
{
ligne = dataSetparadox.Tables["NOM_DE_LA_TABLE"].Rows[i];
                ligneSQL = dataSetSQL.Tables["NOM_DE_LA_TABLE_SOUS_SQL"].NewRow();
ligneSQL["Colonne1_sousSQL"] = ligne["colonne1_sousparadox"];
ligneSQL["Colonne2_sousSQL"] = ligne["colonne2_sousparadox"];
ligneSQL["Colonne3_sousSQL"] = ligne["colonne3_sousparadox"];
ligneSQL["Colonne4_sousSQL"] = ligne["colonne4_sousparadox"];
.....
ligneSQL["Colonne300_sousSQL"] = ligne["colonne300_sousparadox"];

dataSetSQL.Tables["NOM_DE_LA_TABLE_SOUS_SQL"].Rows.Add(ligneSQL);

}
dataSetSQL.Update();


je ne sais pas si ca marche j'ai pas tester mais ca devrait peut etre ressembler à quelque chose comme ca....

c une piste quoi... :)

Arthenius
Messages postés
1182
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
13
tu ne prefere pas utiliser les outils de SQL pour importer des données ???

Arthenius
Messages postés
48
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
6 juillet 2007
1
Salut,
si pour les outils SQL tu parles du DTS, pourquoi pas? Mais je n'ai aucune idéee de comment on s'en sert a partir de Visual studio! Cela n'a pas l'air trop dur a partir de SQL 2000 V7.0 (apparement il y a un assistant importation de données) mais je n'ai pas trouvé comment faire a partir de Visual... T'as une idée? Merci
Feuillou
Messages postés
48
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
6 juillet 2007
1
Ok merci, on est bien d'accord. Je me sens pas assez costaud en SQL pour planifier cela... Mais l'idéee du dataset est peut etre pas tres evolué techniquement, mais elle me plait bien! J' aimerais en effet faire un insert de chaque ligne de mon dataset vers ma BdD grace a une boucle incrémentée qui lit chaque ligne. Mais je sais pas trop comment faire : 1-pour lire une ligne d'un dataset
2- pour programmer l'insertion (en passant par un SQLcommand, un sqldataAdaptater, une procédure stockée...?)
En bref je sais pas trop comment m'y prendre. En tous cas, je te remercie pour ton aide, c'est vraiment sympa... Hésites pas si t'as encore des idées.
Feuillou
Messages postés
1182
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
13
Tiens moi au courant...

Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
Messages postés
1182
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
13
Alors effectivement la methode du dessus marche.
il faut bien faire attention a ne pas faire une ligneSQL = ligneParadox, sinon on aura une erreur, il faut bien assigner chaque valeur de colonne de la table paradox a chaque colonne dans SQL...

voilou...

et on peut faire ca pour faire un import de n'importe qu'elle base vers n'importe qu'elle autre...(du moment qu'on arrive a remplir les datasets)...et pourquoi pas a partir de fichier....
bref ca peut faire un bon outil d'import de données...

:big)

Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
Messages postés
1182
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
13
et le source de feuillou :

http://www.csharpfr.com/code.aspx?ID=22002

pour terminer tout ca...

Arthenius

"Ce qui ne me tue pas, me rend plus fort..."