【发布时间】:2017-03-11 09:05:56
【问题描述】:
我正在尝试使用 VB.NET 代码使用 SQLCMD(SQL 命令提示符)执行 SQL 查询。我正在使用 Windows Shell 脚本连接到服务器并执行查询并将结果集存储在 Excel 文件中。下面是我的代码,它不起作用。 下面的代码中缺少什么?
Dim Command
Dim ServerName As String
Dim DatabaseName As String
Dim QueryToExceute As String
ServerName = "IN2175533W1"
DatabaseName = "C:\FileDirectory\XYZ.mdf"
QueryToExceute = "Select * from Table_Name"
Command = """C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\110\Tools\Binn\SQLCMD.EXE"" " & "-S " & ServerName & " -d " & DatabaseName & " -Q " & QueryToExceute & " -s" & "," & " -o" & "C:\TestQuery.xlsx"
Dim wsh As Object = CreateObject("WScript.Shell")
'Using WScript to execute Stuff
wsh = CreateObject("WScript.Shell")
wsh.Run(Command)
我也尝试了进程类,但它不起作用。以下是我的代码:
Dim Command
Dim ServerName As String
Dim DatabaseName As String
Dim QueryToExceute As String
ServerName = "IN2175533W1"
DatabaseName = "C:\ABC\XYZ.mdf"
QueryToExceute = "Select * from Quality"
Dim Process = New Process()
Process.StartInfo.UseShellExecute = False
Process.StartInfo.RedirectStandardOutput = True
Process.StartInfo.RedirectStandardError = True
Process.StartInfo.CreateNoWindow = True
Process.StartInfo.FileName = "SQLCMD.EXE"
Process.StartInfo.Arguments = "-S " & ServerName & "-d" & DatabaseName & "-Q" & QueryToExceute & "-s" & "," & "-o" & "C:\Testing1.xlsx"
Process.StartInfo.WorkingDirectory = "C:\users\rahul.wankhade\Desktop"
Process.Start()
Process.WaitForExit()
【问题讨论】:
-
SQLCMD 本身就是一个实用程序和应用程序。你应该使用
Processclass -
@Rahul....我尝试了进程类但无法执行查询。