2012-09-14 37 views
0

我有一個正常的PS函數使用System.Data.SqlClient.SqlConnection,System.Data.SqlClient.SqlCommand,System.Data.SqlClient.SqlDataAdapter來查詢數據庫,然後返回一個System.Data.DataTable對象。如何從PowerShell Remoting返回DataTable?

它到目前爲止效果很好,現在我想讓它因爲某些目的而進行遠程處理。

我發現它被放入「Invoke-Command -ComputerName xxx -ScriptBlock {}」塊時成功獲取db記錄。

但是返回值不是System.Data.DataTable的類型,它有一個關於反序列化的前綴,所以我無法通過像以前那樣調用屬性/方法來獲取每個單元格的值。

我該怎麼做?

將其轉換爲數組/散列表?

謝謝!

回答

0

這是遠程處理的工作原理 - 你總是會得到一個反序列化的對象。解決此問題的一種方法是將所有工作都推送到遠程,並僅返回您感興趣的屬性。

另一種選擇是,我編寫了一個可將任何對象轉換爲數據表的數據表外函數:

http://poshcode.org/3534

+0

它的工作原理。謝謝。但是我在代碼中發現了一個錯誤。我們第一行的單元格的值爲0,數據類型可能是錯誤的。 – bychance