2017-10-26 5 views
0

나는 데이터베이스에서 찾아 내고 싶은 값을 가지고 있습니다. 나는 그것을 텍스트는 다음과 같습니다 파일에 결과를 기록 할 때 txt 파일Invoke-Sqlcmd 쿼리를 문자열로 저장

$CNumber = Invoke-Sqlcmd -query ("Select Cust From SY.CompanyCode") -ServerInstance $SQLInstance -Database $Database 

Add-Content $Mobile $CNumber 

에 그 결과를 쓰기 다음 변수에 결과를 저장하는 방법을 제외하고이 스크립트를 실행하기 위해 필요한 모든 것을 가지고 :

System.Data.DataRow 

Invoke-Sqlcmd를 실행하고 변수에 저장하지 않으려 고하면 올바른 값을 볼 수 있습니다. 그래서이 쿼리가 실행되면 어떻게 든 결과를 변환해야한다고 가정합니다.

감사합니다. 쿼리의 결과가 System.Data.DataRow 때문에

+0

_ 감사합니다. _ ... 예. – Clijsters

답변

2

는 PowerShell은 먼저이 ToString() 방법을 사용하는 String으로 개체를 변환 할 Add-Content하고 쉬운 방법으로되어 사용되기 전에 StringDataRow을 변환 할 필요가있다.

당신은

$CNumber.ToString() 

를 호출하여이 자신을 확인할 수 있으며 같은 콘솔에 표시해야합니다

System.Data.DataRow # OR System.Object[] if there are multiple DataRows 

하나만 열을 선택하고 당신이 단순히의 속성에 액세스 할 수 있습니다 DataRow이지만 쿼리가 여러 개의 DataRow을 반환 할 수 있으므로 다음과 같이 루프해야합니다.

foreach($row in $CNumber.Cust) 
{ 
    # row will be equal to each cust from the query 
    # add row to your file here 
} 
+0

그리고 그 이상한 부분을 참조하십시오, 나는 내 질문을 게시하기 전에이 정확한 방법을 테스트하고 어떤 이유로 System.Data.Datarow 끝납니다. – Ochuse

+0

이것이 작동하지 않는 이유는 .NET 사양 .tostring이 객체 유형을 출력합니다. 그것을 변환하기 위해서는 다음을 실행해야합니다 : Add-Content $ Mobile $ CNumber.itemarray 시간 내 주셔서 대단히 감사합니다. 건배! – Ochuse