2012-09-14 2 views
0

J'ai une fonction PS normale utilise System.Data.SqlClient.SqlConnection, System.Data.SqlClient.SqlCommand, System.Data.SqlClient.SqlDataAdapter pour interroger db, puis retourne un objet System.Data.DataTable.Comment faire pour renvoyer DataTable à partir de PowerShell Remoting?

Cela fonctionne très bien jusqu'à présent et maintenant je veux le faire à distance à cause de certaines fins.

J'ai trouvé que les enregistrements db étaient correctement placés dans un bloc "Invoke-Command -ComputerName xxx -ScriptBlock {}".

Mais la valeur de retour n'est pas le type de System.Data.DataTable, il a un préfixe à propos de désérialisé, donc je ne peux pas obtenir la valeur de chaque cellule en appelant des propriétés/méthodes comme avant.

Comment puis-je faire cela?

Convertissez-le en tableau/hashtable?

Merci!

Répondre

0

C'est ainsi que fonctionne la communication à distance - vous allez toujours avoir un objet désérialisé. Une façon de contourner ce problème est de pousser tout le travail vers la télécommande et de ne retourner que les propriétés qui vous intéressent.

Une autre option, j'ai écrit une fonction hors-datable qui convertit n'importe quel objet en un datatable :

http://poshcode.org/3534

+0

Cela fonctionne. Je vous remercie. Mais j'ai trouvé un bug dans le code. Nous une cellule dans la première rangée a la valeur 0, le type de données peut être faux. – bychance

Questions connexes