首先让我感谢那些回答了我以前的问题的人。你们真棒!如何循环数据记录器并在PowerShell中创建DataTable
这是我的问题: 我喜欢查询我的sql服务器存储过程并返回一个datareader。不过,我想创建一个表。我将使用该表使用新的Powershell OpenXML命令行开关加载Excel。当我尝试构建DataTable时,代码失败。我不认为我正确地调用了新对象“System.Object []”。以下是我走到这一步:
$sqlConnection = new-object System.Data.SqlClient.SqlConnection "server=localhost;database=Demo;Integrated Security=sspi"
$sqlConnection.Open()
#Create a command object
$sqlCommand = $sqlConnection.CreateCommand()
$sqlCommand.CommandText = "EXEC Demo.usp_GetTableValueParameter_Data"
#Execute the Command
$sqlReader = $sqlCommand.ExecuteReader()
#Parse the records
$sqlReader | &{ begin{$values = new-object "System.Object[]" $sqlReader["Name"], $sqlReader["Level_Desc"], $sqlReader["Level"]} process {$_.GetValues($values); $datatable.Rows.Add($values)}}
##$datatable | format-table -autosize
# Close the database connection
$sqlConnection.Close()
#STARTING OPENXML PROCESS
#----------------------------
$xlsFile = "C:\Temp\Data.xlsx"
$datatable | Export-OpenXmlSpreadSheet -OutputPath $xlsFile -InitialRow 3
只需在正确的位置添加美元符号($):-) – onupdatecascade 2009-07-26 17:45:33