如何使用C#中的mysql.exe

Jea*_*uis 3 c# mysql cmd

我需要从C#代码调用以下命令:mysql.exe --user = useranme --password = password --database = base <C:\ backups\data.sql

我用:

process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.CreateNoWindow = false;
process.StartInfo.FileName = "mysql.exe";
process.StartInfo.Arguments = "--user=useranme --password=password --database=base < C:\backups\data.sql";

process.OutputDataReceived += new DataReceivedEventHandler(delegate(object sender, DataReceivedEventArgs args)
{
    Console.WriteLine(args.Data);
});

process.Start();
process.BeginOutputReadLine();

process.WaitForExit();
Run Code Online (Sandbox Code Playgroud)

但它不能直接进入命令行.我看到没有执行正确的部分"<C:\ backups\data.sql".

请帮忙.

Fel*_*ano 5

这是因为在命令提示符下写入<filename会强制shell在程序的标准输入中提交文件c:\ backups\data.sql的内容.在参数中的'<'之后传递部分是不正确的,因为您必须使用文件内容提供可执行文件的stdin.为了执行stdin/stdout重定向,您可以引用此问题:

重定向stdin和stdout,其中stdin首先关闭

然后你将data.sql文件的内容推送到stdin流.