求C#实现对MYSQL数据库备份
要用代码的

解决方案 »

  1.   

    MYSQLDUMP -uroot -B -E -R -p TEST>D:\ZZ\123.TXT
    在MYSQL下是可以的,你可以用你的语言调用
    ShellExecute来执行,乱码问题可以不用管。
      

  2.   

    我知道命令是可以用的,可我用C#调用时候备份出乱码(也不能算乱码,有些符号是乱码,汉字都能显示),但是用备份的SQL文件还原不了数据库
      

  3.   

    现在的问题是还原?
    在DOS下:
    mysql -udump_user -pdump_user woshittest< 1.txt
    如果这样能恢复数据库,再用你的语言来调用
      

  4.   

    用命令备份生成a.sql,然后用命令来还原a.sql是可以的
    用语言备份生成b.sql,用语言还原不了b.sql,用命令也还原不了b.sql
    就这个情况
      

  5.   

    语言还原不了b.sql:提示什么?
      

  6.   

    打开两个SQL文件,比较一下,区别在哪里
      

  7.   

    不一样,因为在DOS执行的备份命令在语言里根本就备份不了
    我在网上搜了个,换了的
      

  8.   

    失误...
    命令确实不一样
    但是用语言备份生成b.sql,用语言不能还原b.sql,但是用命令能还原不b.sql 
    就这个情况 
      

  9.   

    但是用语言备份生成b.sql,用语言不能还原b.sql,但是用命令能还原b.sql 
      

  10.   

    mysql -uroot -p123456 -h192.168.123.14 labelprint < c:\label.sql
    这是用命令还原数据库
    openFileDialog1.ShowDialog();
    string url = openFileDialog1.FileName;
    System.Diagnostics.ProcessStartInfo Info = new System.Diagnostics.ProcessStartInfo();
    Info.FileName = @"C:\Program Files\MySQL\MySQL Server 5.0\bin\mysql.exe";
    Info.Arguments = "-uroot -p123456 -h192.168.123.14 labelprint < c:\\label.sql";
    System.Diagnostics.Process proc;
                try
                {
                    proc = System.Diagnostics.Process.Start(Info);
                }
                catch (System.ComponentModel.Win32Exception ex)
                {
                    MessageBox.Show("找不到指定程序文件");
                    return;//
                } 
    这是语言还原数据库,用语言就还原不了
      

  11.   

    提示什么错误信息
    在MYSQL中用上述代码能否成功
      

  12.   

    我在VFP下测试还原代码 是可以的。
      

  13.   

    C:\Program Files\MySQL\MySQL Server 5.0\bin\mysql.exe  -uroot -p123456 -h192.168.123.14 labelprint < c:\\label.sql
    在命令行下是否正确?
      

  14.   

    因为我用代码调用的DOS窗体,DOS执行非常快,执行完就关闭,所以不知道里面是怎么执行的命令,而我又不知道如何让DOS执行完后不关闭
      

  15.   

    你将恢复代码写入一个BAT中,在BAT中加入PAUSE,再调用这个 BAT试试
      

  16.   

    建立一个BAT
    内容:
    C:\Program Files\MySQL\MySQL Server 5.0\bin\mysql.exe  -uroot -p123456 -h192.168.123.14 labelprint < c:\\label.sql 
    PAUSE
    再运行试试
      

  17.   

    你那句不行
    cd C:\Program Files\MySQL\MySQL Server 5.0\bin
    mysql -uroot -p123456 -h192.168.123.14 labelprint < c:\\label.sql 
    PAUSE
    这句能还原
      

  18.   

    cd C:\Program Files\MySQL\MySQL Server 5.0\bin
    mysql -uroot -p123456 -h192.168.123.14 labelprint < c:\\label.sql
    PAUSE 生成BAT文件,用你的语言调用
      

  19.   

    openFileDialog1.ShowDialog(); 
    string url = openFileDialog1.FileName; 
    System.Diagnostics.ProcessStartInfo Info = new System.Diagnostics.ProcessStartInfo(); 
    Info.FileName = @"C:\Program Files\MySQL\MySQL Server 5.0\bin\mysql.exe"; 
    Info.Arguments = "-uroot -p123456 -h192.168.123.14 labelprint < c:\\label.sql"; 
    System.Diagnostics.Process proc; 
                try 
                { 
                    proc = System.Diagnostics.Process.Start(Info); 
                } 
                catch (System.ComponentModel.Win32Exception ex) 
                { 
                    MessageBox.Show("找不到指定程序文件"); 
                    return;// 
                } 
    写成代码就这个了,不行