none
ajuda com update banco dados em firebird com vb.net RRS feed

  • 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...

    terça-feira, 10 de fevereiro de 2015 04:03

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
    terça-feira, 10 de fevereiro de 2015 12:23

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.

    terça-feira, 10 de fevereiro de 2015 09:55
  • 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.

    na verdade é um UPDATE no codigo acima eu acabei copiando do trecho errado, o erro que retorna é "Fcmd1.ExecuteNonQuery()" com base no codigo acima vc consegue ver algum erro de programação ? fora o INSERT AO INVEZ DE
    conFB = "UPDATE TBEMPRESA SET RAZAO_SOCIAL = '" & Me.TextBox2.Text & "' where ID = 1 "
    terça-feira, 10 de fevereiro de 2015 11:52
  • De antemão, estou vendo que vc vai sempre atualizar o registro com ID igual a 1. É isso mesmo?
    terça-feira, 10 de fevereiro de 2015 12:07
  • 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
    terça-feira, 10 de fevereiro de 2015 12:23
  • 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.

    quinta-feira, 12 de fevereiro de 2015 18:06
    Moderador