3
我写一个剧本中,我使许多自定义数据表,基于这个原因,我想提出生成的表给我一个功能。具体来说,我希望函数来创建表与表的列,然后返回一个表,以便调用这个函数可以添加行元素返回的表。但是,每当我返回一个没有行的表时,我都被告知我不能添加行,因为元素是空的。以下是我迄今为止尝试:PowerShell的:返回的数据表,而不用在行功能
Function Generate-Table ($Name, [String[]]$ColumnNames, [Type[]]$DataTypes) {
$table = New-Object system.Data.DataTable "$Name"
for ($i = 0; $i -lt $ColumnNames.Length; $i++) {
$col = New-Object system.Data.DataColumn $ColumnNames[$i],($DataTypes[$i])
$table.columns.add($col)
}
return $table
}
$ColumnNames = @("Name", "Age")
$DataTypes = @([string], [int])
$table = Generate-Table "OutputTable" $ColumnNames $DataTypes
$row = $table.NewRow();
$row.Name = "Bob"
$row.Age = "20"
$table.Rows.Add($row);
$table
这给我的错误:现在
You cannot call a method on a null-valued expression.
At C:\Users\mrpadmin\accounting\test.ps1:15 char:21
+ $row = $table.NewRow <<<<();
+ CategoryInfo : InvalidOperation: (NewRow:String) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
,如果我这样做,而是将其替换线13:
. Generate-Table "OutputTable" $ColumnNames $DataTypes
它正确地给我以下输出:
Name Age
---- ---
Bob 20
有没有办法返回没有行的数据表对象?如果没有,是否有另一种方法来创建一个函数,可以返回数据表准备填充行?
这完美的作品,太感谢你了。我永远都不会想到我自己。 – mrp 2012-07-20 06:37:22