[英]SQL GroupBY columnABC and extracting distinct columnABC values
[英]Extracting SQL values into powershell variables?
我目前有以下腳本:
$SQLServer = "sqldev1"
$SQLDBName = "SPDEV_Printing"
$SqlQuery = "select * from PcBeheerPrinter WHERE PRT_name = 'bwpsc006'"
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "Server = $SQLServer; Database = $SQLDBName; Integrated Security = True"
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = $SqlQuery
$SqlCmd.Connection = $SqlConnection
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet)
$SqlConnection.Close()
clear
$DataSet.Tables[0]
返回如下控制台輸出:
PRT_PrintServerName : pcounter
PRT_Name : bwpsc006
PRT_PortNameFull : PCOUNT_bwpsc006
PRT_CAL_SerialNumber :
PRT_ACTIVE : 1
PRT_CAL_RespondToPing : 1
PRT_CAL_NamePinged : bwpsc006
PRT_CAL_FirstSeendate : 8/02/2017 20:55:13
PRT_CAL_LastSeendate : 4/12/2017 11:36:19
PRT_CAL_SNMPPossible : 1
PRT_CAL_Brand :
PRT_ShareName : bwpsc006
PRT_Comment :
PRT_Datatype : RAW
PRT_DriverName : Canon iR-ADV C5045/5051 PCL6
PRT_Location :
PRT_PrintProcessor :
PRT_Published : 0
PRT_Shared : 0
PRT_NumberOfMissedPings : 0
PRT_LastResponsedate : 4/12/2017 11:36:19
PRT_RenderingMode : CSR
我的問題是:如何將其中一些值轉換為PS變量? 我需要Name,SerialNumber和其他一些名稱(它們將作為示例)最終將它們傳輸到SharePoint列表。 我仍然是初學者,無法通過谷歌搜索來解決問題。
謝謝!
當使用System.Data.SqlClient.SqlCommand
類時,返回的大多數對象都是datatable
類型。 由於$DataSet
的類型為datatable,因此您可以像這樣直接使用所有返回的屬性-
$Name = $DataSet.Tables[0].PRT_Name; $SerialNo = $DataSet.Tables[0].PRT_CAL_SerialNumber
$Name = $DataSet.Tables[0].PRT_Name; $SerialNo = $DataSet.Tables[0].PRT_CAL_SerialNumber
等。
然后,您可以將變量$Name
和$Serialno
用作SharePoint列表的輸入。
如果數據類型是對象,則可以直接使用選擇對象,例如:
$DataSet.Tables[0] | Select-object PRT_Name,PRT_CAL_SerialNumber
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.