执行bcp以插入数据库

时间:2013-10-17 19:36:30

标签: c# sql-server bcp

我编写了一个C#程序来执行bcp命令并将数据从.txt文件传输到SQL Server表中。当我使用命令行执行命令时,它执行正常。

当我运行下面显示的程序时,会出现此错误:

  

at System.Diagnostics.Process.get_StandardError()
  at ...标准错误尚未重定向。

代码:

string outputfilename = @"C:\Output.txt";
string cmdExe = "MyDB.dbo.a in outputfilename -c -T -S servername\\DEV -U readonly -P readonly -F2";
 System.Diagnostics.Process p = new System.Diagnostics.Process();
 p.StartInfo.WorkingDirectory = @"C:\\";
 p.StartInfo.UseShellExecute = false;
 p.StartInfo.RedirectStandardOutput = true;
 p.StartInfo.CreateNoWindow = true;
 p.StartInfo.FileName = "BCP";


 p.StartInfo.Arguments = cmdExe;

 try
 {
     p.Start();
     p.BeginOutputReadLine();

     StreamReader myStreamReader = p.StandardError;
     // Read the standard error of net.exe and write it on to console.
    Console.WriteLine(myStreamReader.ReadLine());
 }
 catch (Exception e)
 {
     Console.WriteLine(e.StackTrace.ToString());
     Console.WriteLine(e.Message);
     Console.ReadLine();
 }
 if (p.WaitForExit(100))
 {
     // Process completed. Check process.ExitCode here.
     p.StandardOutput.ReadToEnd();
 }

1 个答案:

答案 0 :(得分:1)

添加:

p.StartInfo.RedirectStandardError = true;

如果您希望稍后在代码中访问p.StandardError,则必须执行此操作。