COMO INSERIR DADOS NO POSTGRESQL PELO VB

GEISSLER 11/09/2011 17:56:29
#383946
Seguinte galera alguem pode por favor me ajudar ......
Eu utilizava [Ô]Access[Ô] mas agora estou migrando para PostGresql..... decidi ligar ele ao vb por [Ô] NpgSql [Ô] ......
o problema e q nao consigo inserir dados nao sei o codigo correto pedi ajuda no forum e disseram para usar [Ô]INSERT ...... etc[Ô] assim como no sql mas nao deu certo nao sei se eu e q usei o codigo errado por nao conhecer sql ou se o codigo q estava errado ....
Certo ai vcs entram
Eu gostaria de :
**Ligar o meu Banco feito no PostGres ao vb
**Colocar os Dados Salvos em um DataGridView
**Salvar novos Dados
....
consegui ligar e colocar os dados no DataGrid por Npgsql mas se tiverem outro tipo de coneçao.. [Ô]Gambiarra[Ô] qualquer coisa ..... q faça isso eu aceito

(Desculpem o Desespero mas e q tem um programador amigo meu q vai me encinar a mexer no PostGres mas eu nao posso aprender um quando nao souber fazer isso ...... )

Desde ja Agradeço ...Vlw pela ajuda .....
RODRIGOFERRO 11/09/2011 20:21:23
#383948
Resposta escolhida
Amigao nao vi nenhum codigo seu postado aqui, voce vai fazer as INSERT assim como faz no access e outra... existem diversos tutos na net, inclusive passo a passo com fotos como no macoratti...

segue Link

PASSO A PASSO 1
PASSO A PASSO 2

http://www.linhadecodigo.com.br/Artigo.aspx?id=1584
http://forum.imasters.com.br/topic/377199-conexao-vbnet-com-postgresql-usando-npgsql/
Conexão VB.Net com PostgreSql

so posso te ajudar melhor se ru ver o Codigo seu na tela...

Abraços !
GEISSLER 12/09/2011 10:54:59
#383976
Bom dia [Ô]ZEROCAL[Ô]
Então Li todos links e inclusive eu tinha usado esse tutorial do macaratti para fazer a conexão ...
nesse do [Ô]http://joffremota.wordpress.com[Ô] ele cita q a variavel *Dim comando As NpgsqlCommand* Servirá para inserirmos, atualizarmos, removermos e consultarmos dados no banco.só q não fala como [Ô]ativa-la[Ô]

vou postar meu codigo :



Imports Npgsql
Imports System.Data
Public Class Form1
Dim ConexaoPG As String = [Ô]Server=localhost;Port=5432;User Id=postgres;Password=megaware;Database=Banco_Teste;Protocol=3;SSL=false; Pooling=true;MinPoolSize=1;MaxPoolSize=20;Encoding=UNICODE;Timeout=15;SslMode=Disable;[Ô]
Public conn As NpgsqlConnection = Nothing
Dim comando As NpgsqlCommand
Private Sub Carrega_Banco_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Carrega_Banco.Click
Try
[ô]Cria uma Instancia de NpgsqlConnection na variavel conn
conn = New Npgsql.NpgsqlConnection(ConexaoPG)

[ô]Abre a conexão
conn.Open()

[ô]Declara e atribui a instrucao SQL de consulta
Dim SQL As String = [Ô]SELECT * FROM tabela1[Ô]
[ô]aki esta falando assim selecione (* significa todos) as colunas da tabela usuarios



[ô]Instancia o NpgsqlDataAdapter responsavel pela comunicação
[ô]é feita a leitura dos dados preenchendo o dataset
Dim da As Npgsql.NpgsqlDataAdapter = New Npgsql.NpgsqlDataAdapter(SQL, conn)

[ô]Instacia um DataSet
Dim ds As DataSet = New DataSet()

[ô]Preenche o DataAdapter
da.Fill(ds, [Ô]Tabela1[Ô])

[ô]Atribiu um Datasource a Grid
DataGridView1.DataSource = ds.Tables([Ô]Tabela1[Ô]).DefaultView

[ô]aki vai mostra mensagem de erro causo houver

Catch ex As Exception
MsgBox(ex.Message)

Finally
If Not conn Is Nothing Then
[ô]se conexao foi estabelecida entao
If conn.State = ConnectionState.Open Then

[ô]fecha a conexao
conn.Close()
End If
End If
End Try
End Sub

Private Sub Puxar_Dado_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Puxar_Dado.Click
Try
Dim SNome As String = DataGridView1.CurrentRow.Cells([Ô]Nome[Ô]).Value.ToString()
txt_dado_puxado.Text = SNome
Catch ex As Exception
MsgBox([Ô]erro[Ô])
End Try
End Sub

Private Sub Inserir_novo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Inserir_novo.Click
Try
conn.Open()
comando.CommandText = [Ô]INSERT INTO tabela1(codigo, nome, sobrenome, idade, inclusao) VALUES (02, [ô]1[ô], [ô]2[ô], [ô]3[ô], current_date);[Ô]
[ô]como q faz executar o [Ô]camando[Ô] ...
MsgBox([Ô]salvo[Ô])

Catch ex As Exception
MsgBox([Ô]erro[Ô])
End Try


End Sub
End Class


no botão inserir eu usei essa variavel com o comando = [Ô]INSERT INTO tabela1(codigo, nome, sobrenome, idade, inclusao) VALUES (02, [ô]1[ô], [ô]2[ô], [ô]3[ô], current_date);[Ô] mas não sei como fazer ele ativar esse comando ....

Desde já Agradeço
Obrigado Abraço .....
GEISSLER 12/09/2011 14:40:39
#383992
Conseguiii :D ....
Com a ajuda do nosso cara amigo [Ô]ZEROCAL[Ô] percebi q só não sabia usar uma variavel .... ai pesquisei um poco e cheguei a esse site [Ô]http://forum.imasters.com.br/topic/432342-erro-ao-gravar-dados-postgre/[Ô]
peguei o codigo modifiquei para meu programa e aqui esta a solução


Private Sub Inserir_novo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Inserir_novo.Click
Try
[ô]salva ...
comando.Connection = conn
comando.CommandText = [Ô]INSERT INTO tabela1(codigo, nome, sobrenome, idade, inclusao)VALUES (03, [ô]Gustavo[ô], [ô]G. Hovelacque[ô], 16, current_date);[Ô]
conn.Open()
comando.ExecuteNonQuery()
conn.Close()
[ô]Atualiza
Try
conn = New Npgsql.NpgsqlConnection(ConexaoPG)
conn.Open()
Dim SQL As String = [Ô]SELECT * FROM tabela1[Ô]
Dim da As Npgsql.NpgsqlDataAdapter = New Npgsql.NpgsqlDataAdapter(SQL, conn)
Dim ds As DataSet = New DataSet()
da.Fill(ds, [Ô]Tabela1[Ô])
DataGridView1.DataSource = ds.Tables([Ô]Tabela1[Ô]).DefaultView
Catch ex As Exception
MsgBox(ex.Message)
Finally
If Not conn Is Nothing Then
If conn.State = ConnectionState.Open Then
conn.Close()
End If
End If
End Try
Catch ex As Exception
MsgBox([Ô]erro3[Ô])
End Try
End Sub

nesse caso esta salvando com valores fixos mas ja ta funcionando muito Obrigado ....
VLw Até a proxima Obrigado ....
Tópico encerrado , respostas não são mais permitidas