Usuário com melhor resposta
ajuda com update banco dados em firebird com vb.net

Pergunta
-
para muitos é sismples mas nao tenho experiencia em vb.net e preciso de ajuda no codigo para fazer um updat em uma tabela. uso o firebird, e esta dando erro no "Fcmd1.ExecuteNonQuery()" o dado a ser atualizado seria a razao_social que o usuario iria colocar no textbox2 .
segue codigo
Public Class Form1 Dim conexaoFB As FbConnection Dim da As FbDataAdapter Dim ds As New DataSet Public FCnn As FbConnection = New FbConnection Public Fcmd1 As FbCommand '- Executa comando Insert,Update,Delete Public FR1 As FbDataReader '- Para leitura de dados provenientes de selects Public Conectado As Boolean = False Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 'declara a variavel da string de conexão Dim conFB As String 'define a string de conexão usando o usuário e senha padrão conFB = "User=SYSDBA;Password=masterkey;Database=C:\SISTEMA\BANCODADOS.FDB;DataSource=localhost;Port=3050;Dialect=3;" 'define os objetos connection command e datareader Dim connection As FbConnection = New FbConnection(conFB) 'abre a conexao connection.Open() conFB = "Insert Into TBEMPRESA(RAZAO_SOCIAL)Values('" & Me.TextBox2.Text & "')" Fcmd1 = New FbCommand(conFB, FCnn) Fcmd1.ExecuteNonQuery() End Sub end class
obrigado...
Respostas
-
O problema é que esta usando uma string de conexão para comandos (query) e setando a string de conexão no comando ao inves de "connection"
Tente assim:
Public Class Form1 Dim conexaoFB As FbConnection Dim da As FbDataAdapter Dim ds As New DataSet Public FCnn As FbConnection = New FbConnection Public Fcmd1 As FbCommand '- Executa comando Insert,Update,Delete Public FR1 As FbDataReader '- Para leitura de dados provenientes de selects Public Conectado As Boolean = False Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 'declara a variavel da string de conexão Dim conFB As String //Alterei aqui Dim query As String 'define a string de conexão usando o usuário e senha padrão conFB = "User=SYSDBA;Password=masterkey;Database=C:\SISTEMA\BANCODADOS.FDB;DataSource=localhost;Port=3050;Dialect=3;" 'define os objetos connection command e datareader Dim connection As FbConnection = New FbConnection(conFB) 'abre a conexao connection.Open() //Alterei aqui query = String.Format("UPDATE TBEMPRESA SET RAZAO_SOCIAL='{0}' where ID=1", Me.TextBox2.Text) Fcmd1 = New FbCommand(query, connection) Fcmd1.ExecuteNonQuery() End Sub end class
Testa ai, agora esse ID=1 sempre vai atualizar o mesmo registro
- Editado Mr. GMSOFT terça-feira, 10 de fevereiro de 2015 12:24
- Sugerido como Resposta Mr. GMSOFT terça-feira, 10 de fevereiro de 2015 12:25
- Marcado como Resposta Ricardo Barbosa Cortes quinta-feira, 12 de fevereiro de 2015 18:05
Todas as Respostas
-
Rodolfo,
Vc pretende atualizar ou inserir um registro? Se for atualizar, então deveria estar usar UPDATE ao invés de INSERT.
Tente avaliar também o conteúdo da exceção gerada. Normalmente, ao se produzir um erro o .NET retorna um objeto com informações que descrevem melhor o problema.
-
Rodolfo,
Vc pretende atualizar ou inserir um registro? Se for atualizar, então deveria estar usar UPDATE ao invés de INSERT.
Tente avaliar também o conteúdo da exceção gerada. Normalmente, ao se produzir um erro o .NET retorna um objeto com informações que descrevem melhor o problema.
conFB = "UPDATE TBEMPRESA SET RAZAO_SOCIAL = '" & Me.TextBox2.Text & "' where ID = 1 "
-
-
O problema é que esta usando uma string de conexão para comandos (query) e setando a string de conexão no comando ao inves de "connection"
Tente assim:
Public Class Form1 Dim conexaoFB As FbConnection Dim da As FbDataAdapter Dim ds As New DataSet Public FCnn As FbConnection = New FbConnection Public Fcmd1 As FbCommand '- Executa comando Insert,Update,Delete Public FR1 As FbDataReader '- Para leitura de dados provenientes de selects Public Conectado As Boolean = False Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 'declara a variavel da string de conexão Dim conFB As String //Alterei aqui Dim query As String 'define a string de conexão usando o usuário e senha padrão conFB = "User=SYSDBA;Password=masterkey;Database=C:\SISTEMA\BANCODADOS.FDB;DataSource=localhost;Port=3050;Dialect=3;" 'define os objetos connection command e datareader Dim connection As FbConnection = New FbConnection(conFB) 'abre a conexao connection.Open() //Alterei aqui query = String.Format("UPDATE TBEMPRESA SET RAZAO_SOCIAL='{0}' where ID=1", Me.TextBox2.Text) Fcmd1 = New FbCommand(query, connection) Fcmd1.ExecuteNonQuery() End Sub end class
Testa ai, agora esse ID=1 sempre vai atualizar o mesmo registro
- Editado Mr. GMSOFT terça-feira, 10 de fevereiro de 2015 12:24
- Sugerido como Resposta Mr. GMSOFT terça-feira, 10 de fevereiro de 2015 12:25
- Marcado como Resposta Ricardo Barbosa Cortes quinta-feira, 12 de fevereiro de 2015 18:05
-
Boa tarde Rodolfo,
Marquei a resposta do GMSOFT, pois ela parece atender a sua solicitação. Caso não tenha solucionado o problema, desmarque a resposta q continuaremos ajudando ok?
Obrigado,
Abraço!
Eduardo Romero
Esse conteudo e fornecido sem garantias de qualquer tipo, seja expressa ou implicita.
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais facil para os outros visitantes encontrarem a resolucao mais tarde.