SQL Server의 간단한 저장 프로 시저에서 데이터를 가져 오는 데 어려움이 있습니다. 3 열에서 변수를 채워야하는 Powershell 스크립트가 있습니다 (프로 시저에서 1 행만 반환)Powershell을 사용하여 SQL Server 2008에서 데이터 가져 오기
다음은 내가 작동하지 않는 기능입니다. 어떻게 든 열 값을 올바르게 참조하지 않습니다. 다양한 방법을 시도했지만 일반적으로 "null 배열로 색인을 생성 할 수 없습니다"오류가 발생합니다. 나는 결과 집합을 반복하고 싶지 않아, 난 그냥 직접 한 행에서 일부 값을 설정하려면 내가 너무, 가능하면 열 이름을 사용하려는 변수
$conn = new-object Microsoft.SqlServer.Management.Common.ServerConnection
$conn.ConnectionString = `
"Server=ServerName;Database=ShopDB;Integrated Security=True"
$sqlQuery = new-object System.Collections.Specialized.StringCollection
$sqlQuery.Add("JobSettingsGet")
$Resultset = $conn.ExecuteWithResults($sqlQuery)
# $UserName = $table.Rows(0).Columns(0)
# error - Method invocation failed because [System.Data.DataTable] doesn't
# contain a method named 'Rows'.
# $UserName = $table.Rows[0].Columns[0]
# error - cannot index null array
# $UserName = $table.Row(0).Column(0)
# error - Cannot index into a null array, also Method invocation failed
# because [System.Data.DataTable] doesn't contain a method named 'Row'.
# $UserName = $table.Rows[0].Columns[1].Value
# error - cannot index null array
로 돌아왔다.
모든 포인터?
덕분에, 실비아
당신은 전체 테이블을 인쇄하려면 대신SqlServer.Management
클래스
$conn = New-Object Data.Sqlclient.Sqlconnection`
("Data Source=DATABASE;Initial Catalog=master;Integrated Security=SSPI;")
$adapter = New-Object Data.Sqlclient.Sqldataadapter("exec sp_who2", $conn)
$set = new-object data.dataset
$adapter.fill($set)
$table = new-object data.datatable
$table = $set.tables[0]
의 System.Data.SqlClient.SqlConnection
를 사용할 수
감사 제로 번째 결과 집합, 제로 번째 테이블, 제로 번째 행과 항목을 따기에 의한 결과. db에 연결할 수 있으며 foreach 반복자를 사용합니다. 그러나, 내가하고 싶은 것은 (3 열만있는 행이 하나 있다는 것을 알고 있기 때문에) 실제 데이터를 반복하지 않고 변수에 넣습니다. 다음과 같은 내용 ("null 배열로 색인을 생성 할 수 없습니다"오류 메시지가 나타남) : $ 135.Builder.Columns [0] – Sylvia
$ table.rows [0] System.Data가되어야합니다. Columns 멤버가없는 DataRow. item() 메소드를 사용해보십시오 : $ table.Rows [0] .item ("Login"). – vonPryz
감사합니다. 이제 작동합니다. 다른 데이터 액세스 방법 (ExecuteWithResults 등) 대신 sqldataadapter를 사용하는 것이 가장 좋은 시점에 대한 의견 – Sylvia