C # MySQL восстановление базы данных - PullRequest
3 голосов
/ 15 декабря 2010

Я пытаюсь восстановить данные базы данных MySQL из файла дампа, используя коды C #.

Я предполагаю выполнить следующую команду: mysql --verbose --user = root --password = qwerty123456 test

Я знаю, что C # не распознает символ "<", поэтому я попробовал несколько способов, но он все еще не работал. Кто-нибудь может мне помочь с этим? Я хочу восстановить все данные моей базы данных обратно в MySQL, используя коды C #. </p>

Заранее спасибо.

            Process process = new Process();
            process.StartInfo.FileName = @"C:\Program Files\MySQL\MySQL Server 5.1\bin\mysql.exe";
            process.StartInfo.Arguments = @"--verbose --user=root --password=qwerty123456 test";
            process.StartInfo.UseShellExecute = false;
            process.StartInfo.RedirectStandardOutput = true;
            process.StartInfo.RedirectStandardInput = true;
            process.StartInfo.RedirectStandardError = true;
            process.StartInfo.CreateNoWindow = true;
            process.Start();

            StreamReader sr = process.StandardOutput;
            sr = File.OpenText(@"C:\Users\Default\testing.SQL");

1 Ответ

2 голосов
/ 15 декабря 2010

Обработка < должна (IIRC) быть в порядке, если вы просто установите UseShellExecute = true.

Однако, если вы действительно хотите избежать выполнения оболочки, < - это вход - вы должны записать файл в StandardInput. Я, вероятно, оставлю StandardOutput в покое (установите RedirectStandardOutput = false, если вы не хотите активно выводить).

Не проверено, но может быть:

        using(var stdin = process.StandardInput)
        using(var reader = File.OpenText(@"C:\Users\Default\testing.SQL")) {
            string line;
            while((line = reader.ReadLine()) != null) {
                stdin.WriteLine(line);
            }
            stdin.Close();
        }

(который должен транслироваться в файл строка за строкой)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...