我是 powershell 和 SQL Query 的初學者。我想出了如何進行查詢,我得到了一些結果,但我遇到了一個問題,不知道如何管理它。
我的代碼:
$dataSource = "MyBdServer"
$database = "DabaseName"
$connectionString = "Data Source=$dataSource; " "Integrated Security=SSPI; " "Initial Catalog=$database"
$connection = new-object system.data.SqlClient.SQLConnection($connectionString)
$sqlCommand = "select Site, Pavillon, Floor, Localisation, Description from [DabaseName].dbo.Local_C where Location_ID In ( '6096B3F168C546BE84A7A98C8210E947')"
$command = new-object system.data.sqlclient.sqlcommand($sqlCommand,$connection)
$connection.Open()
$adapter = New-Object System.Data.sqlclient.sqlDataAdapter $command
$dataset = New-Object System.Data.DataSet
$adapter.Fill($dataSet) | Out-Null
$connection.Close()
$dataSet.Tables
輸出
Site : NCH
Pavillon : D
Floor : Level S3
Localisation : D.S3.5113
Description : CONSULT./ENTREVUE
問題:當我試圖通過站點屬性獲取值時($DataSet.Tables.Site)值始終為空,它適用于 Pavillon、Floor、Localization 和 Description。我認為這是因為 Object System.Data.Dataset 默認具有該名稱的屬性。我正在嘗試找到一種使用此值的方法。
uj5u.com熱心網友回復:
DataColumn有一個Site屬性,這就是為什么您無法參考該Site列的值的原因。有兩種簡單的選擇,最簡單的一種是參考.Table您的屬性DataTable,然后參考屬性.Site,另一種選擇是使用.ToTable(..)from 的方法DataView。
$columns = @(
'Site'
'Pavillon'
'Floor'
'Localisation'
'Description'
)
$dtt = [System.Data.DataTable]::new()
$columns | ForEach-Object{
$dtt.Columns.Add([System.Data.DataColumn]::new($_))
}
$row = $dtt.NewRow()
$row.Site = 'NCH'
$row.Pavillon = 'D'
$row.Floor = 'Level S3'
$row.Localisation = 'D.S3.5113'
$row.Description = 'CONSULT./ENTREVUE'
$dtt.Rows.Add($row)
$dtt.Site # => Doesn't work
$dtt.Table.Site # => Works
$dv = [System.Data.DataView]::new($dtt)
$dv.ToTable($true, 'Site') # => Works
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/421586.html
標籤:
