C# 使用c类从Powershell中的SQL命令返回输出

C# 使用c类从Powershell中的SQL命令返回输出,c#,sql,powershell,C#,Sql,Powershell,我运行的Powershell脚本能够使用c类执行SQL查询: $MasterDatabaseConnection = New-Object System.Data.SqlClient.SqlConnection $MasterDatabaseConnection.ConnectionString = "<Connectionstring>" $MasterDatabaseConnection.Open() #Create & Run query $Mast

我运行的Powershell脚本能够使用c类执行SQL查询:

$MasterDatabaseConnection = New-Object System.Data.SqlClient.SqlConnection
$MasterDatabaseConnection.ConnectionString = "<Connectionstring>"
$MasterDatabaseConnection.Open()
#Create & Run query
$MasterDatabaseCommand = New-Object System.Data.SqlClient.SqlCommand
$MasterDatabaseCommand.Connection = $MasterDatabaseConnection
$MasterDatabaseCommand.CommandTimeout = 1200;
$MasterDatabaseCommand.CommandText = "select top 1 * from TestTable"
$Results = $MasterDatabaseCommand.ExecuteNonQuery()

$Results
但是,如何让函数ExecuteNonQuery返回正在获取的行的实际输出?它只返回查询是否成功

我无法通过使用其他powershell模块或c程序解决此问题。

ExecuteOnQuery不返回行。线索是非查询部分,它用于不产生行的状态更改操作,例如更新。对于基于行的数据,需要ExecuteReader,对于单个单元格,需要ExecuteCalar作为第一个网格第一行的第一列。对于ExecuteReader,典型用法是不使用特定语言:

reader = command.ExecuteQuery()
while reader.Read()
    # look at reader reader.GetValues(), reader[index], reader.GetValue(column),
    # or reader.GetString(), reader.GetInt32(), etc
如果查询可以包含多个网格,则扩展到

reader = command.ExecuteQuery()
do
    while reader.Read()
        # the same per-grid code as before
while reader.NextResult()
i、 e.每行读取调用在每行之前,每网格NextResult调用在每个网格之后

请注意,所有连接、命令和读取器都实现IDisposable,并应在使用后进行处理。如果这是一个简单的批处理脚本,在退出时将完全终止,那么您可以不依赖于进程分解来完成此操作