小编Bac*_*its的帖子

PowerShell 函数不会返回 DataTable

我在 PowerShell v4.0(Windows 7 x64 SP1)上有一个 PowerShell 脚本,它创建了一个非常复杂的数据表。我希望能够很容易地将 DataTable 代码放在任何地方,所以我决定将它包装在一个简单的函数中,如下所示:

function Get-UserDataTable
{
    $DataTable = New-Object -TypeName System.Data.DataTable -ArgumentList 'User';

    $NewColumn = $DataTable.Columns.Add('Id',[System.Int32]);
    $NewColumn.AllowDBNull = $false;
    $NewColumn.Unique = $true;

    $NewColumn = $DataTable.Columns.Add('FirstName',[System.String]);
    $NewColumn.MaxLength = 64;

    $NewColumn = $DataTable.Columns.Add('MiddleName',[System.String]);
    $NewColumn.MaxLength = 64;

    $NewColumn = $DataTable.Columns.Add('LastName',[System.String]);
    $NewColumn.MaxLength = 64;

    return $DataTable;
}
Run Code Online (Sandbox Code Playgroud)

但是,该代码始终返回空对象。我试过Write-Output $DataTable, return $DataTable.Copy(), 和$DataTable,但该函数仍然始终为空。

所以,我想我可以尝试添加一些行。我总是可以清除数据表,这样编码仍然会更少:

function Get-UserDataTable2
{
    $DataTable = New-Object -TypeName System.Data.DataTable -ArgumentList 'User';

    $NewColumn = $DataTable.Columns.Add('Id',[System.Int32]);
    $NewColumn.AllowDBNull = $false;
    $NewColumn.Unique = $true; …
Run Code Online (Sandbox Code Playgroud)

datatable powershell

7
推荐指数
1
解决办法
3556
查看次数

Powershell 访问前一个管道中的变量

我创建了以下命令,用于合并与文件夹内的过滤器匹配的所有 csv 文件,并将其输出到输出文件中。

$mainPath="C:\\users\\myuser\\temp";
$mergeFilter="myfile.csv";
$outFile = "C:\\users\\myuser\temp\test.csv";
Get-ChildItem $mainPath -Recurse -Include $mergeFilter |
    Select-Object -ExpandProperty FullName |
    Import-Csv -Delimiter ';' |
    Select-Object *,@{Name='Date'; Expression={"$dummyvariable"}}; |
    Export-Csv $outFile -NoTypeInformation -Delimiter ';'
Run Code Online (Sandbox Code Playgroud)

我的问题是,当使用名为 $dummyvariable 的变量合并某些 CSV 时,我想添加一个额外的列,但我不知道必须在哪里初始化它才能获得 Expression={"..."} 中的值. 如果我之前在管道中声明它就不起作用(我需要在管道上做更高的工作以获得目录名称)

你知道我如何声明这个变量并在以“Select-Object”开头的管道上恢复吗?

提前致谢

此致。

何塞

powershell

5
推荐指数
1
解决办法
3500
查看次数

如何在SQL查询中显示特定范围的数字

所以这比标题所暗示的要多一点.我有其中包含的表列和数量列,我想显示谁拥有500和1500之间的总和数量的结果.

例:

name     qty
------  ----
brad     100
cody     300
kylie   1100
brad     800
nelson  1200
bob      600
nelson   100
kylie    600
Run Code Online (Sandbox Code Playgroud)

我想要显示结果

name     qty
------  ----
brad     900
nelson  1300
bob      600
Run Code Online (Sandbox Code Playgroud)

希望这是有道理的.这是我得到的查询

SELECT name, SUM(qty) AS Total 
FROM t1 
    NATURAL JOIN t2 
WHERE qty BETWEEN 500 AND 1500 
GROUP BY name 
ORDER BY name
Run Code Online (Sandbox Code Playgroud)

问题是它似乎只是将qty中的字段汇总在500到1500之间,而不是仅显示该范围内的Total字段.我尝试做"WHERE SUM(qty)BETWEEN ...."但这会导致编译错误(我正在使用SQLite studio)

这是我所在的数据库课的作业问题,我正在学习,而不仅仅是得到答案.谢谢!

mysql sql database sqlite sqlitestudio

2
推荐指数
1
解决办法
162
查看次数

在Powershell中%,$ _和@是什么意思?

这是什么意思:$_%PowerShell中?

1..10 | Foreach {if($_%2){"$_ is odd number"}}
Run Code Online (Sandbox Code Playgroud)

powershell

0
推荐指数
1
解决办法
254
查看次数

标签 统计

powershell ×3

database ×1

datatable ×1

mysql ×1

sql ×1

sqlite ×1

sqlitestudio ×1