PostgreSQL Npgsql ODBC .net | 備忘録 (。・_・。)ノ
Imports Npgsql

        '----------------------------------------------------------------------
        'NpgsqlSample
        '----------------------------------------------------------------------
        Dim cn As NpgsqlConnection = New NpgsqlConnection("Server=localhost;Port=5432;User Id=postgres;Password=postgres;Database=testdb;")
        cn.Open()
        'If cn.State <> ConnectionState.Open Then
        '    MessageBox.Show("接続ERR")
        'Else
        '    MessageBox.Show("接続O K")
        'End If
        'Dim command As NpgsqlCommand =
        'New NpgsqlCommand("insert into v(cdata,vdata) values('AAA','BBB');", cn)
        'Dim sResult As String = command.ExecuteScalar()
        'MessageBox.Show("追加できました")
        'cn.Close()

        'Dim command As NpgsqlCommand = New NpgsqlCommand("select * from v where id = 6", cn)
        'Dim strResult As String = command.ExecuteScalar()
        'MessageBox.Show(strResult)
        'cn.Close()

        Dim sql As String
        Dim da As NpgsqlDataAdapter
        Dim row As DataRow
        Dim dt As DataTable
        'sql = "select * from v where id = 4"
        sql = "select * from ""AAA"" where id = 2"
        da = New NpgsqlDataAdapter(sql, cn)
        dt = New DataTable
        da.Fill(dt)
        If (dt.Rows.Count > 0) Then
            For Each row In dt.Rows
                Debug.WriteLine(row(0).ToString & "-" & row(1).ToString)
            Next
        End If
        cn.Close()

Imports System.Data.Odbc
      '----------------------------------------------------------------------
      'ODBCSample1
      '----------------------------------------------------------------------
       Try
            Dim cn As OdbcConnection = Nothing
            If cn Is Nothing Then
                cn = New OdbcConnection
            End If
            cn.ConnectionString = ";DSN=pg;Database=testdb;UID=postgres;PWD=postgres;Connect Timeout=5"
            cn.Open()
            Dim dt As New DataTable
            Dim trn As OdbcTransaction
            Dim sql As String = "select * from v"
            Dim sqlcmd As New OdbcCommand(sql, cn, trn)
            Dim adapter As New OdbcDataAdapter(sqlcmd)
            adapter.Fill(dt)
            adapter.Dispose()
            sqlcmd.Dispose()
            Dim ret As String = ""
            Dim i As Integer
            For i = 0 To dt.Rows.Count - 1
                Debug.WriteLine(dt.Rows(i).Item("vdata").ToString)
            Next
            cn.Close()
            cn = Nothing
        Catch ex As Exception
            MessageBox.Show(ex.ToString)
        End Try

        '----------------------------------------------------------------------
        'ODBCSample2
        '----------------------------------------------------------------------
        Try
            Dim cn As New OdbcConnection(";DSN=pg")
            Dim sqlcmd As OdbcCommand = cn.CreateCommand
            sqlcmd.CommandText = "SELECT * FROM v"
            cn.Open()
            Dim dt As New DataTable
            Dim adapter As New OdbcDataAdapter(sqlcmd)
            adapter.Fill(dt)
            adapter.Dispose()
            sqlcmd.Dispose()
            Dim ret As String = ""
            Dim i As Integer
            For i = 0 To dt.Rows.Count - 1
                Debug.WriteLine(dt.Rows(i).Item("vdata").ToString)
            Next
            cn.Close()
            cn = Nothing
        Catch ex As Exception
            MessageBox.Show(ex.ToString)
        End Try

        '----------------------------------------------------------------------
        'ODBCSample3
        '----------------------------------------------------------------------
        Try
            Dim cn As Object
            Dim rs As Object
            cn = CreateObject("ADODB.Connection")
            cn.Open(";DSN=pg;Database=testdb;UID=postgres;PWD=postgres;Connect Timeout=5")
            cn.CursorLocation = 3
            rs = cn.Execute("select * from v")
            Do Until rs.EOF
                Debug.WriteLine(rs.Fields(0).Value)
                rs.MoveNext()
            Loop
            rs.Close()
            cn.Close()
        Catch ex As Exception
            MessageBox.Show(ex.ToString)
        End Try

        '----------------------------------------------------------------------
        'ODBCSample4
        '----------------------------------------------------------------------
        Try
            Dim cn As New ADODB.Connection
            Dim rs As ADODB.Recordset
            cn.Open("DSN=pg;")
            rs = cn.Execute("select * from v")
            Do Until rs.EOF
                Debug.WriteLine(rs("cdata").Value)
                rs.MoveNext()
            Loop
            rs.Close()
            cn.Close()
            rs = Nothing
            cn = Nothing
        Catch ex As Exception
            MessageBox.Show(ex.ToString)
        End Try

補足
指定された DSN には、ドライバーとアプリケーションとのアーキテクチャの不一致が含まれています
 → Any CPU -> x64 でエラー解消