Estas creando un comando pero no le indicas en que conexión lo ha de ejecutar. Por eso aunque ya has abierto una, el comando no tiene ninguna conexión relacionada y por eso da ese error. La solución es muy sencilla, modifica esta linia:
Código:
pgCommand = New NpgsqlCommand("SELECT columna1,columna2 FROM tabla WHERE campo3 = @dato;")
Por esta otra:
Código:
pgCommand = New NpgsqlCommand("SELECT columna1,columna2 FROM tabla WHERE campo3 = @dato;", conn)
De esta forma al constructor le indicas que conexión ha de usar para trabajar ;)