Comando MS-DOS desde Aplicacion C#
-
jueves, 25 de marzo de 2010 1:29
Hola buenas tardes, Mi duda es la siguiente, lo que pasa esque estoy tratando de hacer un respaldo sencillo de una base de datos en Mysql desde C#, pero esto lo queiro hacer ejecutando el comando como si lo hiciera directamente en ms-DOS, para los que no saben de mySql el comando ms-DOS para realizar un respaldo de una base de datos es el siguiente
C:\mysqldump -u[usuario] -p[password] basededatos > C:\bdBackup.sql
por ejemplo eso: viendolo mas realista quedaria asi:
c:\mysqldump -uroot -ppassw bdexample > c:\backupbdexample.sql
esto es lo que quiero que haga desde mi aplicacion, es decir que se habra el cmd y ejecute ese comando, ya lo intente de algunas formas y nada, no me crea el backup, ya lo estube viendo en este mismo foro pero no encuentro solucion, espero que puedan ayudarme. de antemano muchas gracias.
nota: estos son algunos codigos que utilice:
System.Diagnostics.ProcessStartInfo back = new System.Diagnostics.ProcessStartInfo("cmd.exe", @"/C c:\mysqldump -uroot -ppassw " + this.txtNombre.Text + " > c:\backup.sql");
back.Verb = "open";
System.Diagnostics.Process.Start(back);
//
System.Diagnostics.ProcessStartInfo back = new System.Diagnostics.ProcessStartInfo("cmd.exe", @"/C c:\mysqldump -uroot -ppassw " + this.txtNombre.Text + " > C:\backup.sql");
Todas las respuestas
-
jueves, 25 de marzo de 2010 2:54Moderador
hola
no has analizado algo como esto
http://forums.mysql.com/read.php?47,214274,222399#msg-222399
como veras ejecuta directo el mysqldump, pasando el path a este comando
algo que tambine note es que no redirige la salida sino que la toma, y la escribe aun archivo, lo veras cuando usa esta linea
SW.Write(p.StandardOutput.ReadToEnd());
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina- Marcado como respuesta joelin_232 viernes, 26 de marzo de 2010 1:44
-
jueves, 25 de marzo de 2010 13:46
hola...
podrias tambien crearte un .bat y ahi tener todos los comandos que se ejecutan en la consola ..luego desde tu aplicacion ejecutarla con Process.Start..
Pablo González Desarrollo de Sistemas. Ecuasoftware.Net Ecuador. -
jueves, 25 de marzo de 2010 23:12
OK Gracias en estos momentos lo estoy checando.
-
jueves, 25 de marzo de 2010 23:12gracias dejame checarlo
-
jueves, 25 de marzo de 2010 23:38Hola estoy tratando de hacer lo que me pasaste pero me marca un error en esta parte
Process p = Process.Start(proc);
me dice que el sistema no encuentra el path especificado.
ya encontre el error, era un pequeño error de sintaxis, pero ahora se queda freceado en esta parte
sw.Write(p.StandardOutput.ReadToEnd()); de ahi en adelante no hace nada.
-
viernes, 26 de marzo de 2010 1:11Moderador
hola
antes de usar la linea
sw.Write(p.StandardOutput.ReadToEnd());
en el codigo, porque no pruebas lanzar el comando de forma visual para poder ver que esta sucdiento
por ahi se queda en ese punto porque esta esperando algun mensaje de confirmacion del usuario
o hay algun error y el proceso no termina
si lanzas el proceso pero indicando que este se visualice podras ver que sucede, luego una vez que todo este correcto, podrias ahi si agregar para grabar la salida por pantalla
ProcessStartInfo.WindowStyle (Propiedad)
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina -
viernes, 26 de marzo de 2010 1:48
si ya encontre mi error era en esta parte
--host = localhost --user = root --password = pass
yo lo ponia -host = localhost -u = root -p = pass
cuando lo correcto es la primera linea; Bueno de todas formas termine por hacerlo de otra forma, le sdejo la pagina para quien le sirva de ayuda;
http://www.webprogramacion.com/168/csharp/copias-de-seguridad-en-mysql.aspx solo tiene un error, pero es facil de detectar, ya se darancuentam, es una simple linea de codigo que no va. Bueno muchas gracias por su ayuda y espero que les sirva la pagina.

