0

从我的 powershell 脚本,我正在尝试连接到 Postgresql 数据库。当我尝试导入 Npgsql.dll 时,它会抛出“找不到类型 [System.Data.Npgsql.SqlCommand]:验证是否加载了包含此类型的程序集”

    Import-Module '.\Npgsql.dll'
    #Add-Type -Path '.\Npgsql.dll'
    $conn = New-Object System.Data.Npgsql.NpgsqlConnection
    $conn.ConnectionString = "Server=**;Port=**;User Id=**;Password=**;Database=**;"
    $cmdText = "select * from **"
    $conn.Open()
    $cmd = New-Object System.Data.Npgsql.SqlCommand($cmdText,$conn)
    $rdr = $cmd.ExecuteReader()
4

2 回答 2

0

我认为您可能上的课程是NpgsqlCommand

尝试改变

$cmd = New-Object System.Data.Npgsql.SqlCommand($cmdText,$conn)

$cmd = New-Object System.Data.Npgsql.NpgsqlSqlCommand($cmdText,$conn)
于 2019-05-22T01:27:40.173 回答
0

此代码适用于 Powershell 7.1.3 和 Npgsql 5.0.4

try
{    
    Add-type -path "Npgsql.dll"
}
catch { $_.Exception.LoaderExceptions }

$connection = New-Object Npgsql.NpgsqlConnection("User ID=postgres;Password=***;Server=localhost;Port=5432;Database=test;")
try {
    $connection.Open()
    $cmd = New-Object Npgsql.NpgsqlCommand('INSERT INTO public."Demo" ("A", "B", "C") VALUES (@A, @B, @C)', $connection)
    $cmd.Parameters.AddWithValue("A", "Some")
    $cmd.Parameters.AddWithValue("B", 123)
    $cmd.Parameters.AddWithValue("C", "value")
    $cmd.ExecuteNonQuery()
} finally {
    $connection.Close()
}
于 2021-04-13T14:21:39.497 回答