Création d'une base de données

nico_fip1 Messages postés 80 Date d'inscription mercredi 6 octobre 2004 Statut Membre Dernière intervention 26 septembre 2006 - 22 févr. 2006 à 14:57
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 - 23 févr. 2006 à 17:31
Bonjour,

Je démarre en systeme de base de données et je me pose plusieurs questions.

Je souhaite créer une base de donnée avec C#.
Pour pouvoir être indépendant du serveur, je pense utiliser les ODBC. (Mes essais se font sous MySQL)
Comment faire pour créer la structure de la base par mon application ?
Ce que j'ai fait pour le moment, c'est envoyer des requêtes SQL du type "CREATE TABLE", "ADD FIELD", ... ...
Le problème de cette méthode, c'est que c'est horiblement long (chaque requête prend un temps fou) ; pourtant, je suis connecté à un serveur local.

Si je crée dans un DataSet toute cette architecture, est-il possible de l'envoyer à un serveur de base de données, à l'origine vierge de tables ?

Est ce que stocker les données sous forme de fichiers "xml" est une méthode "intéligante" ? Dans ce cas là, plus de base de données .... ...

Je suis ouvert à toutes vos suggestions et remarques

Merci d'avance pour vos conseils

Remarque : Il s'agit d'une base contenant une dizaines de petites tables (100 lignes environs chacune, et qui n'évoluent quasi jamais), et 2 grosses table (plusieurs milliers d'enregistrements)

Nico
Strasbourg
France

10 réponses

ProphetKy Messages postés 100 Date d'inscription samedi 11 janvier 2003 Statut Membre Dernière intervention 16 juin 2006 2
22 févr. 2006 à 16:03
tu peux utiliser SQLAdministrator qui est un freeware qui permet de gérer MySQL avec une interface graphique ( donc bcp plus simple )

par après tu peux ajouter une source de données qui te permettra de créer ton DS avec un drag and drop.
nico_fip1 Messages postés 80 Date d'inscription mercredi 6 octobre 2004 Statut Membre Dernière intervention 26 septembre 2006
22 févr. 2006 à 16:51
En fait, ce que je cherche à faire, c'est que mon CODE crée la base de données. En effet, celle si sera amenée à évoluer. Donc mon application doit être capable de mettre à jour l'architecture de façon automatique.

P.S : J'ai potassé plein de doc sur l'ADO.Net. Mais je ne sais pas quelle est la meilleur solution pour mon problème. Comme dit précédement, je ne sais pas si c'est "propre" d'utiliser par exemple un fichier XML comme SGBD...

Je suis donc en quête d'avis

Nico
Strasbourg
France
ProphetKy Messages postés 100 Date d'inscription samedi 11 janvier 2003 Statut Membre Dernière intervention 16 juin 2006 2
22 févr. 2006 à 16:56
perso je suis contre le XML comme SGBD, car malgré tout cela reste un fichier texte et en terme de performance pour 100 à 1000 records je le conseil pas.
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
23 févr. 2006 à 11:53
clair pour le xml laisse tomber...

par contre premieremtn tu peux utiliser les outils de connexion ADO pour mysql que tu trouve sur leur site ..

et perso j'utiliserais des mysqlcommand.excecuteNonquery();

avec mes requetes de creation de base..

par contre je ne pense aps que tu pourra creer par code la base proprement dites...cette etape faudra la faire en standard...

<hr>Arthenius
http://blogs.developpeur.org/Arthenius/

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

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

Posez votre question
nico_fip1 Messages postés 80 Date d'inscription mercredi 6 octobre 2004 Statut Membre Dernière intervention 26 septembre 2006
23 févr. 2006 à 12:49
Merci Arthenius,
Après avoir fait pas mal d'essais, je me suis rendu compte qu même avec le Provider de MySQL, chaque requête est assez lente.
En faisant un DataSet, c'est très rapide. Mais bien sûr, que faire de cette base, qui n'est que "virtuelle".
Mon objectif serait d'executer une seule requète de mise à jour de la base à partir de mon DataSet.

A+

Nico
Strasbourg
France
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
23 févr. 2006 à 14:03
j'ai du mal a suivre...

tu met des requete pour creer des tavbles dans ton dataset ??

ou tu parle des données qui sont dans ton dataset et que tu stock dans ta bdd ???

<hr>Arthenius
http://blogs.developpeur.org/Arthenius/

"Ce qui ne me tue pas, me rend plus fort..."
nico_fip1 Messages postés 80 Date d'inscription mercredi 6 octobre 2004 Statut Membre Dernière intervention 26 septembre 2006
23 févr. 2006 à 15:29
Pour le moment, je n'ai pas de base de donnée. Je fait simplement un DataSet que je remplis par mon code.
J'ai donc toute une architecture, avec données, dans le DataSet.
Ce que je souhaite faire, c'est placer tout ça dans une base de données, à laquelle j'accède par ODBC.
J'ai regardé du coté de DataAdapter, mais cette objet ne permet, si j'ai bien compris, que de synchroniser un DataSet et une base de données qui ont la même architecture.

Suis-je clair ?

Nico
Strasbourg
France
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
23 févr. 2006 à 15:46
arf strasbourg ^^

le monde est petit je suis a selestat ^^

ok je comprend mieux ton pb
voila une source qui pourrait te servir...
j'ai fais un petit tuto de l'utilisation des dataadapter, command et autres...

http://www.csharpfr.com/codes/EXEMPLE-UTILISATION-DATAGRID-DATAADAPTER-SELECT-SUR-BDD-AVEC_27738.aspx

par contre ca attaque une base sql...
mais en gros tout les SqlConnection, SqlDataAdapter => deviennent des OdbcConnection, OdbcDataAdapter...

sinon plutot que l'odbc je te conseil vivement d'utiliser l'ado (plus rapide)
tu peux telecharger les Dll ADO de mysql ici : http://dev.mysql.com/downloads/connector/net/1.0.html

sinon oui le dataadapter permet de faire les insert, delete et autre update dans ta base en fonction de ce que tu a mis dans ton dataset

Arthenius
http://blogs.developpeur.org/Arthenius/

"Ce qui ne me tue pas, me rend plus fort..."
nico_fip1 Messages postés 80 Date d'inscription mercredi 6 octobre 2004 Statut Membre Dernière intervention 26 septembre 2006
23 févr. 2006 à 17:23
Solut Tü
Merci pour ces infos.
Pour le connecteur natif, je sais que c'est BEAUCOUP plus rapide.
Le problème,c'est que je doit faire une appli suceptique de s'adapeter à n'importe quelle source de données. Tu vois donc le soucis...
Je pense eventuelement faire des Dll avec les différents connecteurs Natifs.
Lors de l'installation, on choisi laquelle installer. Dans ce cas, on garde la souplesse, et on gagne la vitesse.

Le pb, c'est qu'il faut du temps pour dévellopper toutes les dll, et les valider...

Hopla... A bientôt

Nico
Strasbourg
France
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
23 févr. 2006 à 17:31
yoooooo

HHammeulle ...

nous on a developper une dll qui utilise les natifs...effectivement 4-6 mois de boulot ^^

mais du coup on change un parametre et nos applis passe de SQL a MYSQL et autre OLEDB...

juste en changeant le fichier de config

<hr>Arthenius
http://blogs.developpeur.org/Arthenius/

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