我是asp.net
的新用户,想要为此目的编写运行sql server
dtexec
的代码,请写下以下代码:
System.Diagnostics.Process si = new System.Diagnostics.Process();
si.StartInfo.WorkingDirectory = @"c:\";
si.StartInfo.UseShellExecute = false;
si.StartInfo.FileName = "cmd.exe";
si.StartInfo.Arguments = "/C dtexec / f E:/Package.dtsx / set /package.variables[FilePath].Value; e:\testFile.txt";
si.StartInfo.CreateNoWindow = true;
si.StartInfo.RedirectStandardInput = true;
si.StartInfo.RedirectStandardOutput = true;
si.StartInfo.RedirectStandardError = true;
si.Start();
string output = si.StandardOutput.ReadToEnd();
si.Close();
但是当我运行该代码时,会收到此错误:
Microsoft (R) SQL Server Execute Package Utility Version 12.0.2000.8 for 64-bit Copyright (C) Microsoft Corporation. All rights reserved. Option "/" is not valid.
我怎么能解决这个问题?谢谢大家。
答案 0 :(得分:1)
你应该从这一行删除空格,如:
si.StartInfo.Arguments = "/C dtexec /f E:\\Package.dtsx /set \\package.variables[FilePath].Value;e:\\testFile.txt"
您还应该能够在cmd.exe中运行命令:
dtexec /f e:\package.dtsx /set \package.variables[FilePath].Value;e:\testFile.txt
除非它在cmd中有效,否则它也无法通过您的代码工作。