【问题标题】:Trying to import module of Npgsql.dll in the powershell script but fails including assembly into the script尝试在 powershell 脚本中导入 Npgsql.dll 模块,但将程序集包含到脚本中失败
【发布时间】:2019-10-08 06:22:03
【问题描述】:

我正在尝试从我的 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()

【问题讨论】:

    标签: powershell odbc npgsql import-module


    【解决方案1】:

    此代码适用于 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()
    }
    

    【讨论】:

      【解决方案2】:

      我想你可能上的课是NpgsqlCommand

      尝试改变

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

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

      【讨论】:

      • 它仍然抛出相同的错误“找不到类型 [System.Data.Npgsql.NpgsqlSqlCommand]:验证是否加载了包含此类型的程序集”和“找不到类型 [System.Data.Npgsql. NpgsqlConnection]:验证是否加载了包含此类型的程序集。"
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-25
      • 2020-07-14
      • 2021-03-18
      相关资源
      最近更新 更多