• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Weasel

[VB.NET 2005] Ligação a base de dados PostgreSQL

8 mensagens neste tópico

Pessoal, aqui na minha empresa temos um servidor de PostgreSQL, eu gostava de poder ligar ao servidor e usar as bases de dados, mas como eu faço a ligação através do VB ?

No site do postgresql tem um npgsql que é um ".Net Data Provider", saquei-o carreguei a dll e adiciona uns controlos á toolbox, tem o NpgsqlConnection que faz a conexão á base de dados, tem o NpgsqlCommand que creio que seja para executar comandos (querys) depois ainda tem o CommandBuilder e o DataAdapter que não faço ideia para que sirvam, estive a procurar na documentação do npgsql mas o exemplos que dão são em linguagem C, e eu não percebo aquilo, alguém que me possa dar uma mãozinha ?

Dois exemplos:

using System;
using System.Data;
using Npgsql;

public static class NpgsqlUserManual
{
  public static void Main(String[] args)
  {
    NpgsqlConnection conn = new NpgsqlConnection("Server=127.0.0.1;Port=5432;User Id=joe;Password=secret;Database=joedata;");
    conn.Open();
    
    NpgsqlCommand command = new NpgsqlCommand("select * from tablea", conn);

    
    try
    {
NpgsqlDataReader dr = command.ExecuteReader();
while(dr.Read())
{
  		for (i = 0; i < dr.FieldCount; i++)
  		{
  			Console.Write("{0} \t", dr[i]);
  		}
  		Console.WriteLine();
}

    }
    
    finally
    {
      conn.Close();
    }
  }
}

using System;
using System.Data;
using Npgsql;

public static class NpgsqlUserManual
{
  public static void Main(String[] args)
  {
    NpgsqlConnection conn = new NpgsqlConnection("Server=127.0.0.1;Port=5432;User Id=joe;Password=secret;Database=joedata;");
    conn.Open();
    
    // Declare the parameter in the query string
    NpgsqlCommand command = new NpgsqlCommand("select * from tablea where column1 = :column1", conn);
    
    // Now add the parameter to the parameter collection of the command specifying its type.
    command.Parameters.Add(new NpgsqlParameter("column1", DbType.Int32));

    // Now, add a value to it and later execute the command as usual.
    command.Parameters[0].Value = 4;

    
    try
    {
NpgsqlDataReader dr = command.ExecuteReader();
while(dr.Read())
{
  		for (i = 0; i < dr.FieldCount; i++)
  		{
  			Console.Write("{0} \t", dr[i]);
  		}
  		Console.WriteLine();
}

    }
    
    finally
    {
      conn.Close();
    }
  }
}

Obrigado a quem puder ajudar!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O Npgsqlconnection, Npgsqlommand, Npgsqldataadapter e Npgsqlcommandbuilder são os equivalentes do sqlcommand, sqldataadapter, ..., ou odbccommand, odbcdataadapter... etc etc que vêm por defeito para aceder, respectivamente, a bd sqlserver ou odbc.

Pelos nomes, parece-me que o provider do postgres funciona exactamente da mesma maneira que todos os outros providers .net. No codeproject há muitos exemplos de como usar as classes do .net para ligar a base de dados - experimenta por exemplo este artigo: http://www.codeproject.com/aspnet/adodotnet.asp

Em relação ao exemplo, qual é o problema? não funciona?

shana

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Vou ver esse link (o problema do exemplo é que é em Linguagem C# e eu pretendo para linguagem VB.NET 2005, como não sei C# vim aqui pedir ajuda :cheesygrin: )

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ah, pois, sorry , é a minha alergia :cheesygrin:

O codeproject tá cheio de código tanto em vb como em c#, vê na secção adonet, de certeza que encontras muitos exemplos.

shana

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

:-[

Já consegui qualquer coisa, mas é esquisito, aqui não podemos usar o nome da coluna por exemplo "cliente" e sim o seu index numérico, neste caso 1 já que o 0 é o "id" não haverá outra maneira ? Seja como for já é qualquer coisa!  :cheesygrin:

Imports npgsql
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim conn As New NpgsqlConnection("SERVER=200.200.200.201;DATABASE=xpto;USER ID=me;PASSWORD=1234;")
        conn.Open()

        Dim command As New NpgsqlCommand("select * from clientes", conn)
        Dim dr As Npgsql.NpgsqlDataReader
        dr = command.ExecuteReader()

        While dr.Read()
            MsgBox(dr.GetValue(1))
        End While
        conn.Close()
    End Sub
End Class

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É isso tudo, até estava a ver como me ia desenrascar com os campos das tabelas por índices numéricos :cheesygrin:

é dr.Item("cliente")

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora