【发布时间】:2016-04-14 08:24:47
【问题描述】:
我花费数小时解决此问题。我有这个代码
Dim drive_name As String = Directory.GetCurrentDirectory & "\database"
Dim db_name As String = "sample_db.sql"
Dim argument As String = "-u root sample_db table1 > """ & drive_name & "\" & db_name & """"
Try
Diagnostics.Process.Start("C:\xampp\mysql\bin\mysqldump.exe", argument)
Console.WriteLine("Argument: " & argument)
Catch ex As Exception
Console.WriteLine("Error: " & ex.ToString)
End Try
通过查看console.writeline,它的输出是这样的
-u root sample_db table1 > "C:\Users\MyName\Desktop\MyProjectPath\bin\Debug\database\sample_db.sql"
但是通过检查C:\Users\MyName\Desktop\MyProjectPath\bin\Debug\database\我看不到sample_db.sql,所以我打开mysqdump复制console.writeline并将其粘贴到cmd。我现在在 mysqldump 上有这个
C:\Users\MyName>C:\xampp\mysql\bin\mysqldump -u root sample_db table1 > "C:\Users\MyName\Desktop\MyProjectPath\bin\Debug\database\sample_db.sql"
通过在 mysqldump 上执行它可以工作。
我该如何解决这个问题?
【问题讨论】:
-
我对小于的使用感到惊讶,我本以为大于
-
哦,对不起!这只是一个错字。
-
:) 好的,这很公平,在这种情况下您是否尝试过使用 process.StandardOutput 选项打开流并写入等等?
-
谢谢!我没试过。我熟悉使用
process.StandardOutput。会更好吗? -
Cary 下面的解决方案应该也可以工作——但是有一个标准输入和一个标准输出,你可以像使用它们一样使用它们 | mycommand 和 mycommand > 东西没有mysql 不能在这里安装(大哥在看)测试,但是收集输出并用它做点什么是一个很好的方法..