none
Função Gravar edição não esta funcionando RRS feed

  • Pergunta

  • O sistema está gravando novos usuários e apagando-os normalmente, mas há um problema na parte de edição dos registros. A sua tarefa é arrumar a funcionalidade de edição, pois quando há alguma alteração e clicamos no botão GRAVAR, as alterações não estão sendo salvas. Precisamos que as alterações sejam efetivadas na base.

    Public Function Gravar() As Boolean

            Dim objConexao As New OleDbConnection

            Dim cmdCommand As New OleDbCommand

            Dim strSQL As New StringBuilder

            Dim bolRetorno As Boolean

            Dim listParametros As New List(Of SqlParameter)

            Dim bolInclusao As Boolean

            Try

                Verifica(Propriedades.Nome, strNome)

                Verifica(Propriedades.Login, strLogin)

                Verifica(Propriedades.Senha, strSenha)

                Verifica(Propriedades.Departamento, strDepartamento)

                Verifica(Propriedades.Matricula, strMatricula)

                Verifica(Propriedades.Detalhes, strDetalhes)

                If Geral.Conectar(objConexao) = True Then

                    cmdCommand.Connection = objConexao

                    If lngUsuarioID = 0 Then

                        strSQL.Append("INSERT INTO Usuarios (")

                        strSQL.Append("Nome, ")

                        strSQL.Append("Administrador, ")

                        strSQL.Append("[Login], ")

                        strSQL.Append("Senha, ")

                        strSQL.Append("TrocaSenha, ")

                        strSQL.Append("TodosProjetos, ")

                        strSQL.Append("Departamento, ")

                        strSQL.Append("Matricula, ")

                        strSQL.Append("Detalhes, ")

                        strSQL.Append("SSO, ")

                        strSQL.Append("Inativo) ")

                       

                        strSQL.Append("VALUES (")

                        strSQL.Append("@Nome, ")

                        strSQL.Append("@Administrador, ")

                        strSQL.Append("@Login, ")

                        strSQL.Append("@Senha, ")

                        strSQL.Append("@TrocaSenha, ")

                        strSQL.Append("@TodosProjetos, ")

                        strSQL.Append("@Departamento, ")

                        strSQL.Append("@Matricula, ")

                        strSQL.Append("@Detalhes, ")

                        strSQL.Append("@SSO, ")

                        strSQL.Append("@Inativo)")

                        bolInclusao = True

                    Else

                        strSQL.Append("UPDATE [Usuarios] SET ")

                        strSQL.Append(" [Nome] = @Nome, ")

                        strSQL.Append(" [Administrador] = @Administrador,")

                        strSQL.Append(" [Login] = @Login,")

                        strSQL.Append(" [Senha] = @Senha,")

                        strSQL.Append(" [TrocaSenha] = @TrocaSenha,")

                        strSQL.Append(" [TodosProjetos] = @TodosProjetos,")

                        strSQL.Append(" [Departamento] = @Departamento,")

                        strSQL.Append(" [Matricula] = @Matricula,")

                        strSQL.Append(" [Detalhes] = @Detalhes,")

                        strSQL.Append(" [SSO] = @SSO,")

                        strSQL.Append(" [Inativo] = @Inativo ")

                        strSQL.Append(" WHERE [UsuarioID] = @UsuarioID")

                        cmdCommand.Parameters.AddWithValue("@UsuarioID", lngUsuarioID)

                    End If

                    cmdCommand.Parameters.AddWithValue("@Nome", strNome)

                    cmdCommand.Parameters.AddWithValue("@Administrador", IIf(bolAdministrador = True, 1, 0))

                    cmdCommand.Parameters.AddWithValue("@Login", strLogin)

                    cmdCommand.Parameters.AddWithValue("@Senha", strSenha)

                    cmdCommand.Parameters.AddWithValue("@TrocaSenha", IIf(bolTrocaSenha = True, 1, 0))

                    cmdCommand.Parameters.AddWithValue("@TodosProjetos", IIf(bolTodosProjetos = True, 1, 0))

                    cmdCommand.Parameters.AddWithValue("@Departamento", strDepartamento)

                    cmdCommand.Parameters.AddWithValue("@Matricula", strMatricula)

                    cmdCommand.Parameters.AddWithValue("@Detalhes", strDetalhes)

                    cmdCommand.Parameters.AddWithValue("@SSO", IIf(bolSSO = True, 1, 0))

                    cmdCommand.Parameters.AddWithValue("@Inativo", IIf(bolInativo = True, 1, 0))

                    cmdCommand.CommandText = strSQL.ToString

                    cmdCommand.ExecuteNonQuery()

                   

                    objConexao.Close()

                    bolRetorno = True

                End If

            Catch ex As Exception

                objConexao.Close()

                bolRetorno = False

                Throw ex

            Finally

                objConexao = Nothing

                strSQL = Nothing

            End Try

            Return bolRetorno

        End Function

    terça-feira, 3 de junho de 2014 02:02

Respostas

  • Paulo, então vamos passo a passo para debugar isso:

    1. Coloque um breakpoint dentro do ELSE onde ocorre o UPDATE. Vá dando step até chegar ao final script e pegue o conteúdo de strSQL.ToString.

    Outro breakpoint também deve ficar nessa linha:

    cmdCommand.CommandText = strSQL.ToString

    Teste no banco e veja o que acontece.

    - Nesse caso pode ocorrer:

    a) Não vai entrar no bloco do ELSE e não vai parar no breakpoint.

    b) Vai entrar no bloco ELSE, porém a query que você pegou na variavel strSQL está inválida na execução direta no banco.

    Se encontrar algo, nos conte aqui ;)

    Abraços !


    Diego Murakami View Diego Murakami's LinkedIn profile - MCP, MS, MCSD
    * Por favor "Marcar como Resposta" caso esta for útil para sua dúvida.



    quarta-feira, 4 de junho de 2014 16:07

Todas as Respostas

  • Bom dia Paulo,

    Da uma olha nesse exemplo do Botão Salvar, é isso que você precisa?

    Private Sub btnSalvar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesbtnSalvar.Click

     

    Dim salvarComo As SaveFileDialog = New SaveFileDialog()

    Dim caminho As DialogResult

    Dim fluxoTexto As IO.StreamWriter

    Dim Arquivo As String

     

    salvarComo.CheckFileExists = False

    salvarComo.Title = "Arquivos Textos |*.txt |"

    caminho = salvarComo.ShowDialog

    Arquivo = salvarComo.FileName

     

    If Arquivo = Nothing Then

       MessageBox.Show("Arquivo Invalido", "Salvar Como",          MessageBoxButtons.OK)

    Else

       fluxoTexto = New IO.StreamWriter(Arquivo)

       fluxoTexto.Write(txtLinhas.Text)

       fluxoTexto.Close()

    End If

     

    End Sub

    http://www.macoratti.net/vbn_txt.htm

    Fico na aguardo de uma resposta.

    Att,

    terça-feira, 3 de junho de 2014 15:07
  • Paulo, boa tarde.

    Gostaria de saber qual a mensagem de erro que está ocorrendo. Dessa forma podemos ajudar melhor.

    Abraços !


    Diego Murakami View Diego Murakami's LinkedIn profile - MCP, MS, MCSD
    * Por favor "Marcar como Resposta" caso esta for útil para sua dúvida.

    terça-feira, 3 de junho de 2014 16:57
  • Bom dia

    Obrigado por tentar me ajudar.

    Não esta ocorrendo menssagem alguma.

    Apenas não salva na edição do registro e me deram pra arrumar essa tela.

    Na inclusão de novos registros funciona perfeitamente.

    Aguardo Retorno.

    Obrigado

    quarta-feira, 4 de junho de 2014 14:55
  • Paulo, então vamos passo a passo para debugar isso:

    1. Coloque um breakpoint dentro do ELSE onde ocorre o UPDATE. Vá dando step até chegar ao final script e pegue o conteúdo de strSQL.ToString.

    Outro breakpoint também deve ficar nessa linha:

    cmdCommand.CommandText = strSQL.ToString

    Teste no banco e veja o que acontece.

    - Nesse caso pode ocorrer:

    a) Não vai entrar no bloco do ELSE e não vai parar no breakpoint.

    b) Vai entrar no bloco ELSE, porém a query que você pegou na variavel strSQL está inválida na execução direta no banco.

    Se encontrar algo, nos conte aqui ;)

    Abraços !


    Diego Murakami View Diego Murakami's LinkedIn profile - MCP, MS, MCSD
    * Por favor "Marcar como Resposta" caso esta for útil para sua dúvida.



    quarta-feira, 4 de junho de 2014 16:07