Прежде всего позвольте мне поблагодарить тех людей, которые ответили на мои предыдущие вопросы. Вы, ребята, потрясающие !!!Как скопировать Datareader и создать DataTable в Powershell
Это мой вопрос: Мне нравится запрашивать у меня sql server Хранимую процедуру и возвращать datareader. Однако я хочу создать таблицу из нее. В этой таблице я буду использовать для загрузки excel с использованием новых командлетов Powershell OpenXML. Когда я пытаюсь построить 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