SoloCodigo
CLR: .Net / Mono / Boo / Otros CLR => C# => Mensaje iniciado por: amyexpress en Sábado 15 de Diciembre de 2007, 21:23
-
Hola! atodos!
soy nueva en este foro, y me gustaria que me pudieran ayudar con el problema que tengo.
necesito respaldar una base de datos que tengo en MySQl, y no se que codigo introducir en C# para poder realizarlo. si alguien me puede ayudar, se lo agradeceria muchisimo :comp:
-
Primero averigua como se realiaz un backup de forma externa, luego eso lo agregas al codigo de un programa en C#
-
encontre el sig. código para generar la bd y me marca que.... No puede comenzar el proceso porque no han proporcionado un nombre del archivo.
public void Backup(string args)
{
ProcessStartInfo psi = new ProcessStartInfo(ConfigurationManager.AppSettings["MysqlDump"], args);
string filename = Path.Combine(workingDir, DateTime.Now.ToString(@"yyyy-MM-dd.\sql"));
using (StreamWriter writer = new StreamWriter(filename, false, Encoding.UTF8))
{
using(Process process = new Process())
{
psi.CreateNoWindow = true; // Evita que el proceso se inicie en una nueva ventana.
psi.UseShellExecute = false; // Evita que se use el shell del sistema operativo para iniciar el proceso.
psi.RedirectStandardOutput = true; // Escribir la salida en Process.StandarOuput
psi.StandardOutputEncoding = Encoding.UTF8; // Codificación de los datos de salida
process.StartInfo = psi;
process.OutputDataReceived += delegate(object sender, DataReceivedEventArgs e)
{
writer.WriteLine(e.Data);
};
process.Start();
process.BeginOutputReadLine(); // Lectura asincrónica del stream de salida
process.WaitForExit(); // Esperar a que el proceso termine.
}
}
}
en workingdir mando el directorio donde quiero que se me almacene y como args mando la de mysql para respaladar bd y me la genera pero vacia, no se si alguien me pueda ayudar
-
Hola:
Lo de que te cree la bd vacia puede ser que no usas Mysqldump con los parametros adecuados. Prueba con:
mysqldump --opt --database "nombre_bd_a_respaldar"
Y para el proceso, mira si existe la propiedad siguiente para darle nombre al archivo:
psi.StartInfo.Filename = "Ruta del archivo"
Saludos
-
muchas gracias a los que me brindaron su ayuda, ya me funciono, aqui les dejo el codigo para cualquiera que tenga el mismo problema.
public void Backup()
{
string dir = txtDireccion.Text + "\\";
string nombre=txtNombre.Text + ".sql";
string filename = dir + nombre;
string args = " --host=soluciondiaz --opt --password=root --user=root solc ";
ProcessStartInfo psi = new ProcessStartInfo("cmd.exe", string.Format("/c \"\"{0}\" {1} > \"{2}\"\"", "MysqlDump", args, filename));
psi.CreateNoWindow = true;
psi.UseShellExecute = false;
using (Process process = new Process())
{
process.StartInfo = psi;
process.Start();
process.WaitForExit();
}
}