IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Dotnet Discussion :

[C# , .NET , MySql ] un mini probleme de restauration


Sujet :

Dotnet

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de elmcherqui
    Profil pro
    Inscrit en
    Février 2008
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Maroc

    Informations forums :
    Inscription : Février 2008
    Messages : 281
    Par défaut [C# , .NET , MySql ] un mini probleme de restauration
    bonjour je suis entrain de faire une application de gestion en C#/.NET en utilisant MySql comme sgbd , j'ai tellement galere avec la connection a MySql et son driver , que je pense pas changer de sgbd , c'est apres que j'ai su qu'il y'a SQL server Compact 3.5 qui est natif mais bon j'ai pas trouve un tuto qui explique de A a Z ...

    mon probleme est je suis entrain de savoir comment restaurer ma base a partir d'un fichier a partir du code C# .

    pour sauvegarder j'ai reussi avec ce code . ( la redirection c'est parceque la console s'ouvre et se ferme rapidement donc faut lire les messages )
    je precise que je ne peux pas utiliser l'operateur > de redirection de flux comme sur cmd c'est pour sa il y'a le -r

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    System.Diagnostics.Process proc = new System.Diagnostics.Process();
    proc.StartInfo.RedirectStandardOutput =  true ;
    proc.StartInfo.UseShellExecute = false;
    proc.StartInfo.FileName="C:\\wamp\\bin\\mysql\\mysql5.1.36\\bin\\mysqldump.exe";
    proc.StartInfo.Arguments = "-u root --all-databases -r C:\\sauver\\sauvage.sql";
    proc.Start();
    string s = proc.StandardOutput.ReadToEnd();
    proc.WaitForExit();
     co.WriteLine(s);
    mais pour restaurer : je precise que mon fichier fait plus de 5Mo , impossible a faire avec phpmyAdmin qui n'accepte pas plus de 2Mo et meme j'aimerais le faire avec du code C# et en sachant que le < ne marche pas avec C# et et pourtant cette commande marche avec cmd .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql -u root < C:\sauver\sauvage.sql
    qui me restaure toutes mes bases de donnees .

    j'aimerais faire la meme chose mais en C#
    si C# connaissait < alors mon code aurait donne sa :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    proc.StartInfo.FileName = @"C:\wamp\bin\mysql\mysql5.1.36\bin\mysql";
    proc.StartInfo.Arguments = " -u root  < C:\\sauver\\sauvage.sql";
    proc.Start();
    string s = proc.S
    mais la j'ai trouve une option -e mais il me dit : Unknown database C:\..... j'aimerais lui dire de tous me creer puisque je fait une sauvegarde complete j'aimerais une recuperation complete voila mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    System.Diagnostics.Process proc = new System.Diagnostics.Process();
    proc.StartInfo.FileName = @"C:\wamp\bin\mysql\mysql5.1.36\bin\mysql";
    proc.StartInfo.Arguments = @" -u root -e source c:\sauver\sauvage.sql";
    proc.Start();
    proc.WaitForExit();
    Merci infiniment pour votre futur aide et bonne soiree

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Par défaut
    pourquoi veux tu impérativement passer par mysqldump ?

    tu ferais une restauration/sauvegarde au sens SQL Serveur je dirais ok, mais là, ta restauration est tout ce qu'il y a de plus trivial puisqu'il s'agit d'un énorme fichier sql...

    tu vois toujours pas ou je veux en venir ?
    alors c'est très simple...

    Charge ton fichier en mémoire dans une seule string et envoie ta string de 5Mo en query à ton SGBD via ADO.NET.
    Personnellement je décomposerais la string, à chaque fois que je trouverais des commentaires je ferais un split de façon a réduire le trafic mais c'est vraiment important.

    Tu té cassé les pieds à utiliser MySQL sur C#... alors que visiblement tu n'est pas familiarisé avec ADO.NET alors utilise ce lien direct plutot que des trucs dont tu n'est meme pas sure qu'ils sont installés.

    En effet, ton appli C# bien qu'utilisant une connexion vers MySQL et bien qu'elle dispose de la lib mysql.dll avec les pilotes MySQL pour dotnet... cela ne signifie en rien qu'elle tournera toujours sur la meme machine que le serveur MySQL.

  3. #3
    Membre très actif Avatar de elmcherqui
    Profil pro
    Inscrit en
    Février 2008
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Maroc

    Informations forums :
    Inscription : Février 2008
    Messages : 281
    Par défaut
    Citation Envoyé par cinemania Voir le message
    pourquoi veux tu impérativement passer par mysqldump ?

    tu ferais une restauration/sauvegarde au sens SQL Serveur je dirais ok, mais là, ta restauration est tout ce qu'il y a de plus trivial puisqu'il s'agit d'un énorme fichier sql...

    tu vois toujours pas ou je veux en venir ?
    alors c'est très simple...

    Charge ton fichier en mémoire dans une seule string et envoie ta string de 5Mo en query à ton SGBD via ADO.NET.
    Personnellement je décomposerais la string, à chaque fois que je trouverais des commentaires je ferais un split de façon a réduire le trafic mais c'est vraiment important.

    Tu té cassé les pieds à utiliser MySQL sur C#... alors que visiblement tu n'est pas familiarisé avec ADO.NET alors utilise ce lien direct plutot que des trucs dont tu n'est meme pas sure qu'ils sont installés.

    En effet, ton appli C# bien qu'utilisant une connexion vers MySQL et bien qu'elle dispose de la lib mysql.dll avec les pilotes MySQL pour dotnet... cela ne signifie en rien qu'elle tournera toujours sur la meme machine que le serveur MySQL.
    ok je vais tester avec sa c'est que des requetes SQL en fin de compte , mais moi je voulais une methode qui n'utilise pas la memoire et aille directement soliciter MySQL parceque 5Mo j'ai l'impression que c'est beaucoup .

    et puis j'installerais moi meme mysql avec le driver odbc sur la machine.
    si j'ai pas utilise SQL Server c'est parceque sur les caneaux IRC la majorite sont des linuxophile et windowsophobe donc on m'a conseille MySql et on m'a un peu aide dessus et j'ai bien galeré pour comprendre le truc , j'ai meme eu un peu honte de dire que j'etais sous windows.

    Merci de m'avoir depanne , mais si quelqu'un a la reponse pour ma commade de restauration j'attend toujours .
    ou alors un tuto de SQL Server , je suis pret a tous reapprendre , je suis la pour sa
    bonne soiree

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Par défaut
    bon dit toi que 5 mo c'est rien.

    en C# ca n'a pas d'importance et tu l'a dit ce sont des commandes Sql ni plus ni moins donc si tu veux avoir un effet plus "pédagogique" les lancer de façon séquentielles via ADO.NET sera plus utile qu'utiliser ces tools.

    En plus exécuter des trucs extérieurs... c'est franchement pas propre !

    Et juste comme ca... C# gère très bien MySQL, si tu utilise le connecteur MySQL NET CE fourni sur le site MySQL.
    Il faut l'utiliser plutot qu'ODBC, un pilote n'est d'ailleurs pas utile avec ce connecteur.

    Pour info, utiliser ODBC pour MySQL sur dotnet est très lent.

    A ce compte là, utilise SQL Server 2005 Express ou SQL Compact 3.5 installé en même temps que Visual Studio 2008. Ce sera plus natif et plus logique

    mais en fait peu importe, il n'y a pas à avoir honte d'utiliser Windows et dotnet.
    ce sont ces linuxiens qui sont étriqués. j'étais moi même un des leurs il y a quelques années pendant mes études, mais j'en suis revenu, surtout maintenant que la politique Microsoft a évoluée.
    un jour il faudra qu'ils redescendent de leur cocotier car le monde a bien changé.

    Même les universités et écoles d'info jusqu'ici frileuses vis à vis de windows passent toutes l'une après l'autre sous infrastructure Windows Server...
    Il y a une raison... même si les profs sont tjs fixé sur leurs croyances d'autant totalement dépassées, les services d'infos eux... ont clairement évolué à ce niveau.

    Personnellement j'ai pas honte, et je le revendique, je suis sous windows seven et je bosse pour une boite Microsoft Gold Partner.
    Ces linuxiens préfèraient tous crever la bouche ouverte que d'avouer d'ailleurs qu'ils tournent pour ainsi dire TOUS sous windows... pourquoi ? parce qu'il n'existe aucun jeu sous linux, (enfin presque aucun) et surtout pas de jeux genre WoW pour lequel il est interdit d'utiliser Winex...

    Donc tu vois n'ai pas honte

    Pour utiliser SQL Server tu n'a rien à réapprendre.
    le connecteur MySQL utilise le même interface que l'interface natif de Sql Serveur fourni dans le dotnet.
    Simplement l'administration d'un SQL server se fait par un vrai client d'administration lourd, que tu peux télécharger gratuitement sur le site de microsoft.
    SQL Server Management Studio Express ou carrément SQL Server 2008 Express With Advanced Tools qui contient le serveur et le management studio.
    Tu verras on est très loin de cette ersatz qu'est PhpMyAdmin

  5. #5
    Membre très actif Avatar de elmcherqui
    Profil pro
    Inscrit en
    Février 2008
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Maroc

    Informations forums :
    Inscription : Février 2008
    Messages : 281
    Par défaut
    Merci beaucoup de m'avoir donnee des conseils , j'ai telecharge SQL Server 2008 sur msdnaa et je suis sous vs2010 pro ( msdnaa aussi ) .

    si quelqu'un a un lien sur un tuto ou juste une introduction avec des petits exemple avec SQL server je suis preneur ( connexion , sauvegarde et restauration , c'est ce qui m'intéresse ) .

    Merci pour votre futur aide .

  6. #6
    Membre très actif Avatar de elmcherqui
    Profil pro
    Inscrit en
    Février 2008
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Maroc

    Informations forums :
    Inscription : Février 2008
    Messages : 281
    Par défaut
    bon et bien j'ai reussi a utiliser la commande mysql de restauration comme l'indique la documentation de MySql . mais j'ai ecrit un petit code en C++ et j'envoie la commande du C# vers mon code C++ qui l'execute avec la fonction System de la bilbiotheque stdlib et sa marche .
    sa prend beaucoup moins de temps que si je decortique la string .

    c'est pas tres beau et methode desesperee , mais sa marche a 100% et beaucoup plus rapidement , tous sa a cause de l'operateur de redirection de flux '<' qui ne marche pas en commande C# . si quelqu'un a une solution meilleur je suis preneur

Discussions similaires

  1. [Débutant] VB.NET Mysql probleme de delay
    Par JuVeNaL dans le forum VB.NET
    Réponses: 6
    Dernier message: 05/01/2012, 10h50
  2. [DUMP BDD] Problème de restauration avec MySQL Administrator
    Par scorpiwolf dans le forum Administration
    Réponses: 1
    Dernier message: 12/07/2006, 12h33
  3. Probleme Sauvegarde-Restauration avec MySql Administrator
    Par Christophe Charron dans le forum Administration
    Réponses: 7
    Dernier message: 26/07/2005, 08h25
  4. mysql 3.23 probleme charset
    Par lcoder dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 04/07/2005, 13h28
  5. [VB.NET] [MySQL Connector Net 1.0.4] Pb de MySqlConnection
    Par toxine dans le forum Windows Forms
    Réponses: 9
    Dernier message: 22/03/2005, 13h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo