簡體   English   中英

如何正確傳遞參數?

[英]How do I pass parameters properly?

請在下面查看我的功能:

Function Query {
    param (
        [string]$query
        [string]$server
        [string]$dbase
        [string]$user
        [string]$pass
    )

    if ($user) { 
        $connstr = "Server={0};Database={1};User ID={2};Password={3};Trusted_Connection=False;Connect Timeout=15" -f $server, $dbase, $user, $pass 
    } 
    else { 
        $connstr = "Server={0};Database={1};Integrated Security=True;Connect Timeout=15" -f $server, $dbase
    }
    $conn.ConnectionString = $connstr 


    switch ($query.Split()[0]) {
        "SELECT" {
            $cmd = New-Object System.Data.SqlClient.SqlCommand($query,$conn)
            $adapter = New-Object System.Data.SqlClient.SqlDataAdapter($cmd)
            $dataset = New-Object System.Data.DataSet
            $adapter.Fill($dataset) | Out-Null
            return $dataset
        }
        "UPDATE" {
            $cmd = New-Object System.Data.SqlClient.SqlCommand($query,$conn)
            return $cmd.ExecuteNonQuery()
        }
        "INSERT" {
            $cmd = New-Object System.Data.SqlClient.SqlCommand($query,$conn)
            return $cmd.ExecuteNonQuery()
        }
    }
}

Query -query "SELECT TOP 10 myField FROM myTable" -server "SQLEXPRESS" -dbase "TEST"

這行不通,Powershell ISE在param部分給了我紅色,但是我不明白為什么。 由於人們似乎有許多不同的方式來構造Powershell函數(我是一個初學者:)),我有些困惑。

如何使此功能起作用?

把逗號,參數之間:

Function SomeName {
  Param ($param1,$param2,$param3)
}

等等。您可以在逗號后使用空格或換行符以提高可讀性,這是大多數人所做的事情:

Function SomeName {
   param (
          $param1,
          $param2 
         )
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM