none
Insert e Update não estão funcionando RRS feed

  • Pergunta

  • Socorro!!!||

    Estou fazendo um Sistema de Restaurante em VBnet para um trabalho da faculdade.
    Mas estou com alguns problemas, dentre eles, no meu cadastro de Clientes, simplesmente a execução para no comando insert ou no comando update e não continua, fazendo assim com que não seja nem inserido nem alterado o Cliente.

    Por favor, se alguém puder ajudar!!!
    Segue abaixo o código do botão gravar que verifica se o cliente deseja incluir novo cliente ou alterar e efetua a gravação no banco de dados.

    -----------------------------------------------------------------------------------------
    Private Sub btn_Gravar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Gravar.Click

    Dim SQLComando As String

    Try
    '<Códigos que podem gerar erro>
    If Len(txt_CodCli.Text) > 0 Then
    'alteração
    SQLComando = "UPDATE Clientes SET Nome='" & cmb_Nome.Text & "', Endereco ='" & txt_Endereco.Text & "', Fone =" & txt_Fone.Text & ", Celular =" & txt_Celular.Text & ", CPF =" & txt_Cpf.Text & ", CodCidade = " & cmb_Cidade.SelectedValue & " , Email ='" & txt_Email.Text & "', DataNasc ='" & CDate(txt_DataNasc.Text) & "' WHERE Codigo = '" & CLng(txt_CodCli.Text) & "'"
    Else
    ' inserção
    'não insere o código porque é auto enumerável
    SQLComando = "INSERT INTO Clientes (Nome, Endereco, Fone, Celular, Cpf, CodCidade, Email, DataNasc) VALUES ( '" & cmb_Nome.Text & "', '" & txt_Endereco.Text & "', " & txt_Fone.Text & ", " & txt_Celular.Text & ", " & txt_Cpf.Text & ", " & cmb_Cidade.SelectedValue & ", '" & txt_Email.Text & "', '" & CDate(txt_DataNasc.Text) & "')"
    End If
    'Cria o comando
    Dim ComandoCli As New OleDb.OleDbCommand(SQLComando, Conexao)

    Console.WriteLine(SQLComando)
    'Executa o comando e grava no banco
    ComandoCli.ExecuteNonQuery()
    MessageBox.Show("Registro Gravado com sucesso!")
    CarregaCombos()
    InicializaControles()

    Catch Ex As Exception
    '<Rotina de tratamento de erro>
    ' MsgBox(Ex.Message)
    Console.WriteLine(Ex.Message)
    Finally
    '<Rotina que deve ser executada, independentemente da ocorrência de erro>

    End Try

    End Sub
    -----------------------------------------------------------------------------------------------------

    Obrigada!
    terça-feira, 1 de dezembro de 2009 00:56

Respostas



  • Olá prijef,

    Utilizando parâmetros seu código fica muito mais seguro, enxuto e até mais legível, mais claro também para se entender.

    Sobre parâmetros seguem algumas referências:


    Parametros em um Comando SQL
    http://social.msdn.microsoft.com/Forums/pt-BR/vsvbasicpt/thread/79a99a34-5b40-4c82-abfb-8ff349e3fe54


    Problema parametro SqlComand
    http://social.msdn.microsoft.com/Forums/pt-BR/vsgeralpt/thread/67d8448c-7017-41f1-b12a-f7487ce0abbb


    Passando Parametro com datasource
    http://social.msdn.microsoft.com/Forums/pt-BR/adoptpt/thread/fb892525-a380-4e3f-818d-d5afc8bac7b0


    E sobre operação UPDATE:

    Instrução UPDATE não está atualizando corretamente vb.net
    http://social.msdn.microsoft.com/Forums/pt-BR/vsvbasicpt/thread/a497c60e-bf56-4051-83b9-13e877bb1e90


    Espero ter ajudado,


    []'s

     


    Magno Machado Borba |- Se o post foi util ou resposta nao esqueca de marcar.
    sexta-feira, 4 de dezembro de 2009 11:37
  • Olá Prijet,

    Como estão setados os campos no banco?? qual é o banco que vc usa?? pelo geito é access...

    Seguinte:

    1º: O seu Update esta errado

    2º: UTILIZE PARAMETROS, pois é uma boa pratica de programação e corrigi vários problemas e tbm serve para evitar  Sql Injections (leia sobre o assunto)

    3º: Aconsselho vc fortemente a usar o sql Server  

    4º: o campo cod cliente vc deve setar no banco como nao permitir null e marcar a opção de auto increment (Sempre adiciona + 1 automaticamente)

    5º: O tipo de dado setado em cada variavel no parameters tem que ser igual a campo no DB


    Segue um codigo exemplo de update com parametros...



     
    'AQUI EU FAÇO UM SELECT, PREENCHO UMA VARIAVEL COM O CAMPO VALOR, FAÇO A SUBTRAÇÃO COM O VALOR DA TEXT BOX E FAÇO O UPDATE CONFORME A LINHA SELECIONADA DO DATAGRIDVIEW 
    
    
    Private Sub BtnReceber_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnReceber.Click
            Dim strConexao As String = My.Settings.ConectionVanilson.ToString
            Dim oConn As New SqlConnection
            Dim strSQL As New StringBuilder
            Dim dataSet As DataSet = New DataSetReportVendas
            Dim oCmd As SqlCommand = Nothing
    
    
            Try
                'abrindo conexÆo com o banco de dados.
                oConn.ConnectionString = strConexao
                oConn.Open()
    
                'definindo o SQL do relat¢rio
    
                strSQL.Append(" SELECT ")
                strSQL.Append("  Vendas.VendaID, ")
                strSQL.Append("  Vendas.Produto, ")
                strSQL.Append("  Vendas.Numero_Ficha, ")
                strSQL.Append("  Vendas.Cliente, ")
                strSQL.Append("  Vendas.Vendedor, ")
                strSQL.Append("  Vendas.Data_Vencimento, ")
                strSQL.Append("  Vendas.Valor_Venda, ")
                strSQL.Append("  Vendas.Obs ")
                strSQL.Append(" FROM ")
                strSQL.Append(" Vendas ")
                strSQL.Append(" Where Vendas.VendaID = @VendaID")
                strSQL.Append(" ORDER BY Vendas.Valor_Venda Desc ")
    
    
    
                oCmd = New SqlCommand(strSQL.ToString, oConn)
                oCmd.CommandText = strSQL.ToString
                oCmd.CommandType = CommandType.Text
    
                oCmd.Parameters.Add(New SqlParameter("@VendaID", SqlDbType.Int)).Value = DataGridViewRecebimento.CurrentRow.Cells(0).Value
                'executando o SQLCommand
    
                Dim adapter As SqlDataAdapter = New SqlDataAdapter(oCmd)
    
                adapter.Fill(dataSet, "Vendas")
    
    
                'DataGridViewRecebimento.DataSource = dataSet.Tables("Vendas")
    
                Dim valor As Decimal = Convert.ToDecimal(dataSet.Tables("Vendas").Rows(0).ItemArray.GetValue(6).ToString())
    
    
                valor = valor - Convert.ToDecimal(txtReceber.Text)
    
                strSQL.Append(" UPDATE ")
                strSQL.Append("    Vendas ")
                strSQL.Append("    SET Vendas.Valor_Venda = @Valor ")
                strSQL.Append(" FROM ")
                strSQL.Append("Vendas")
                strSQL.Append(" WHERE Vendas.VendaID = @VendaID")
    
                oCmd = New SqlCommand(strSQL.ToString, oConn)
                oCmd.CommandText = strSQL.ToString
                oCmd.CommandType = CommandType.Text
    
                oCmd.Parameters.Add(New SqlParameter("@VendaID", SqlDbType.Int)).Value = DataGridViewRecebimento.CurrentRow.Cells(0).Value
    
    
                oCmd.Parameters.Add(New SqlParameter("@valor", SqlDbType.Decimal)).Value = valor
                oCmd.ExecuteNonQuery()
    
                MessageBox.Show("OK, valor recebido com sucesso!")
    
                txtReceber.Text = ""
    
                CarregaLoad()
    
    
            Catch ex As Exception
                System.Diagnostics.Debug.WriteLine(ex.Message)
            Finally
                ' liberando os objetos
                oConn.Dispose()
                oConn = Nothing
    
            End Try
    
    
        End Sub
    Espero ter sido útil

    Abraço
    Gilson Dias
    sexta-feira, 4 de dezembro de 2009 11:51
  • Segue um codigo de Insert

     

     

    
    
    
    
      Private Sub btnCadastrarVenda_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCadastrarVenda.Click
            If VerificaValor() = True Then
                MessageBox.Show("Digite todos os Dados.", "Atenção!")
            Else
    
                If txtValor.Text = String.Empty Then
                    txtValor.Text = 0
                End If
    
    
                Dim _Condicao As String
                If rdbPrazo.Checked = True Then
                    _Condicao = "Prazo"
                Else
                    _Condicao = "Vista"
                End If
    
                Dim _Moeda As String
                If rdbDinheiro.Checked Then
                    _Moeda = "Dinheiro"
                Else
                    _Moeda = "Cheque"
                End If
    
                Dim _Ativo As String = "Ativa"
    
                Dim _Valor As Decimal = Convert.ToDecimal(txtValor.Text)
    
    
                Dim conexao As New SqlConnection
                Dim comando As New SqlCommand
    
                conexao = New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True")
                comando = New SqlCommand("INSERT INTO Vendas (Produto,Numero_Ficha,Cliente,Vendedor,Condicao,Moeda,Data_Venda,Data_Vencimento,Valor_Venda,Status,Obs) Values (@Produto,@Numero_Ficha,@Cliente,@Vendedor,@Condicao,@Moeda,@Data_Venda,@Data_Vencimento,@Valor_Venda,@Status,@Obs)", conexao)
    
                comando.Parameters.Add(New SqlParameter("@Produto", Data.SqlDbType.NVarChar)).Value = ComboBoxProdutos.SelectedValue
                comando.Parameters.Add(New SqlParameter("@Numero_Ficha", Data.SqlDbType.NVarChar)).Value = txtFicha.Text
                comando.Parameters.Add(New SqlParameter("@Cliente", Data.SqlDbType.NVarChar)).Value = comboboxCliente.SelectedValue
                comando.Parameters.Add(New SqlParameter("@Vendedor", Data.SqlDbType.NVarChar)).Value = ComboBoxVendedor.SelectedValue
                comando.Parameters.Add(New SqlParameter("@Condicao", Data.SqlDbType.NVarChar)).Value = _Condicao
                comando.Parameters.Add(New SqlParameter("@Moeda", Data.SqlDbType.NVarChar)).Value = _Moeda
                comando.Parameters.Add(New SqlParameter("@Data_Venda", Data.SqlDbType.DateTime)).Value = _DiaDaVenda
                comando.Parameters.Add(New SqlParameter("@Data_Vencimento", Data.SqlDbType.DateTime)).Value = DateTimePickerVencimento.Value.Date
                comando.Parameters.Add(New SqlParameter("@Valor_Venda", Data.SqlDbType.Decimal)).Value = _Valor
                comando.Parameters.Add(New SqlParameter("@Status", Data.SqlDbType.NVarChar)).Value = _Ativo
                comando.Parameters.Add(New SqlParameter("@Obs", Data.SqlDbType.NVarChar)).Value = txtObsVenda.Text
    
    
                Try
                    conexao.Open()
                    comando.ExecuteNonQuery()
    
                    MessageBox.Show("Venda Cadastrada com Sucesso!")
                    Limpa()
                Catch ex As Exception
                    MessageBox.Show("Erro ao lançar venda, Verifique os dados!", "Atenção")
                End Try
    
    
                conexao.Dispose()
                conexao = Nothing
    
            End If
        End Sub
    Abraço
    sexta-feira, 4 de dezembro de 2009 11:54

Todas as Respostas

  • prijef,

    Você não abriu a conexão antes de executar o comando.

    Ex:

    ...
    Try
        ...
        Conexao.Open()
        ComandoCli.ExecuteNonQuery()
        ...
    Catch Ex as Exception
        ...
    Finally
        If Conexao.State = ConnectionState.Open Then
            Conexao.Close()
        End If
    End Try
    ...


    Att.

    Ari C. Raimundo
    terça-feira, 1 de dezembro de 2009 02:19
  • Só uma sugestão, não concatena assim as variaveis.. é uma falha de segurança que permite sql injection.. passa como parameters...
    quando ao erro a ve a solução do Ari :)
    Abraços
    http://marcoscavaleiro.blogspot.com
    quarta-feira, 2 de dezembro de 2009 12:26
  •  
    Se a aplicação form WEB vc. tem colocar o endereço na conectString

     <connectionStrings>
        <!--add name="AplicationConnection" connectionString="Data Source=127.0.0.1;Initial Catalog=NovaGestaoDaArrecadacao;Persist Security Info=True;User ID=sa;Password=123" providerName="System.Data.SqlClient"/>-->
        <add name="AplicationConnection" connectionString="Data Source=192.168.7.145;Initial Catalog=NovaGestaoDaArrecadacao;Persist Security Info=True;User ID=sa;Password=malbec" providerName="System.Data.SqlClient"/>
      </connectionStrings>



    A maneira mais fácil de passa os parametro do form ou da Webpage conectar com procedures de inclusão alteração e exclusão. Vc. Passa os parametros e a procedure executa muito mais rápido que a maneira que vc esta fazendo atualmente.


    Exemplo:

            public int incluirUsuario()
            {
                connection = new SqlConnection(DataSource);
                try
                {
                    command = new SqlCommand("SP_incluirUsuario", connection);
                    command.CommandType = CommandType.StoredProcedure;
                    command.Parameters.Add("@Nome", SqlDbType.NVarChar,50).Value = Nome;
                    command.Parameters.Add("@DataNascimento", SqlDbType.DateTime).Value = dataNascimento;
                    command.Parameters.Add("@Rg", SqlDbType.NVarChar, 12).Value = Rg;
                    command.Parameters.Add("@Matricula", SqlDbType.NVarChar, 20).Value = Rg;
                    command.Parameters.Add("@LoginUser", SqlDbType.NVarChar, 50).Value = Login;
                    command.Parameters.Add("@Senha", SqlDbType.NVarChar, 50).Value = Criptografa(Senha);
                    command.Parameters.Add("@Status", SqlDbType.Char, 1).Value = Status;
                    command.Parameters.Add("@tipoAcesso", SqlDbType.Int, 1).Value = TipoAcesso;

                    connection.Open();
                    SqlDataReader reader = command.ExecuteReader();
                    if (reader.Read())
                    {
                        Id = Convert.ToInt32(reader["idUsuario"]);
                    }

                    return id;
                    reader.Close();
                    connection.Close();
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
                finally
                {
                    command.Dispose();
                }
            }


    exemplo da procedure :

    set ANSI_NULLS ON
    set QUOTED_IDENTIFIER ON
    GO
    -- =============================================
    -- Author: Josias Rosa
    -- Create date: 06/10/2009
    -- Description: Inclui Usuario
    -- =============================================

    CREATE PROCEDURE [dbo].[SP_incluirUsuario]
    @Nome NVARCHAR(50)
    ,@DataNascimento DATETIME = NULL
    ,@Rg NVARCHAR(12) = NULL
    ,@Matricula NVARCHAR(20) = NULL
    ,@LoginUser NVARCHAR(50) = NULL
    ,@Senha NVARCHAR(50) = NULL
    ,@Status CHAR(1) = NULL
    AS
    BEGIN

    DECLARE  @Err_Number INT
    ,@Err_Description VARCHAR(200)
    ,@iIDENTITY INT

    SET @Err_Number = 0
    SET @Err_Description = ''
    SET @iIDENTITY = 0
    SET NOCOUNT ON;

    INSERT INTO Usuario
               (Nome
               ,DataNascimento
               ,Rg
      ,Matricula
      ,LoginUser
      ,Senha
      ,Status)
        VALUES
               (@Nome
               ,@DataNascimento
               ,@Rg
               ,@Matricula
      ,@LoginUser
      ,@Senha
      ,@Status)

    IF(@@ROWCOUNT = 0)
    BEGIN
    SET @ERR_NUMBER = 100
    SET @ERR_DESCRIPTION = 'ERRO AO INCLUIR.'
    END

    SELECT @iIDENTITY = SCOPE_IDENTITY()
    SELECT @iIDENTITY AS idUsuario, 
    @Err_Number AS  Err_Number, @Err_Description AS Err_Description
    END



    Caso vc tenha mais dúvidas estou a disposição 

    josias_analise_sistemas@hotmail.com
    josias.oliveira@trendstec.com.br

    • Sugerido como Resposta Josias Oliveira quinta-feira, 3 de dezembro de 2009 16:25
    quinta-feira, 3 de dezembro de 2009 16:25
  • Gente, minha conexão está sendo feita sim, porém no módulo.

    Estou conseguindo efetuar o UPDATE porém não está alterando corretamente a cidade.
    E meu INSERT continua não executando.

    Será que alguém poderia me dar uma ajudinha nestes comandos?

    Segue abaixo o código do botão gravar alterado.
    Obrigada.

     

    Private Sub btn_Gravar_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Gravar.Click

     

    Dim SQLComando As String

     

    Try

     

    '<Cdigos que podem gerar erro>

     

    If Len(txt_CodCli.Text) > 0 Then

     

    'alterao

    SQLComando =

    "UPDATE Clientes SET Nome='" & cmb_Nome.Text & "', Endereco ='" & txt_Endereco.Text & "', Fone =" & txt_Fone.Text & ", Celular=" & txt_Celular.Text & ",CPF=" & txt_Cpf.Text & ", CodCidade=" & cmb_Cidade.SelectedValue & ",Email='" & txt_Email.Text & "',DataNasc='" & txt_DataNasc.Text & "' WHERE Codigo = " & CLng(txt_CodCli.Text)

     

    Else

    SQLComando =

    "INSERT INTO Clientes ( Nome, Endereco, Fone, Celular, Cpf, CodCidade, Email, DataNasc) VALUES ( '" & cmb_Nome.Text & "', '" & txt_Endereco.Text & "', " & txt_Fone.Text & ", " & txt_Celular.Text & ", " & txt_Cpf.Text & ", " & cmb_Cidade.SelectedValue & ", '" & txt_Email.Text & "', '" & txt_DataNasc.Text & "')"

     

    End If

     

    'Cria o comando

     

    Dim ComandoCliente As New OleDb.OleDbCommand(SQLComando, Conexao)

    Console.WriteLine(SQLComando)

     

     

    'Executa o comando e grava no banco

    ComandoCliente.ExecuteNonQuery()

    MessageBox.Show(

    " Operao realizada com sucesso!")

    CarregaCombos()

    InicializaControles()

     

     

    Catch Ex As Exception

     

    '<Rotina de tratamento de erro>

     

    ' MsgBox(Ex.Message)

    Console.WriteLine(Ex.Message)

     

    Finally

     

    '<Rotina que deve ser executada, independentemente da ocorrncia de erro>

     

    End Try

    InicializaControles()

     

     

    End Sub

    quinta-feira, 3 de dezembro de 2009 18:51


  • Olá prijef,

    Utilizando parâmetros seu código fica muito mais seguro, enxuto e até mais legível, mais claro também para se entender.

    Sobre parâmetros seguem algumas referências:


    Parametros em um Comando SQL
    http://social.msdn.microsoft.com/Forums/pt-BR/vsvbasicpt/thread/79a99a34-5b40-4c82-abfb-8ff349e3fe54


    Problema parametro SqlComand
    http://social.msdn.microsoft.com/Forums/pt-BR/vsgeralpt/thread/67d8448c-7017-41f1-b12a-f7487ce0abbb


    Passando Parametro com datasource
    http://social.msdn.microsoft.com/Forums/pt-BR/adoptpt/thread/fb892525-a380-4e3f-818d-d5afc8bac7b0


    E sobre operação UPDATE:

    Instrução UPDATE não está atualizando corretamente vb.net
    http://social.msdn.microsoft.com/Forums/pt-BR/vsvbasicpt/thread/a497c60e-bf56-4051-83b9-13e877bb1e90


    Espero ter ajudado,


    []'s

     


    Magno Machado Borba |- Se o post foi util ou resposta nao esqueca de marcar.
    sexta-feira, 4 de dezembro de 2009 11:37
  • Olá Prijet,

    Como estão setados os campos no banco?? qual é o banco que vc usa?? pelo geito é access...

    Seguinte:

    1º: O seu Update esta errado

    2º: UTILIZE PARAMETROS, pois é uma boa pratica de programação e corrigi vários problemas e tbm serve para evitar  Sql Injections (leia sobre o assunto)

    3º: Aconsselho vc fortemente a usar o sql Server  

    4º: o campo cod cliente vc deve setar no banco como nao permitir null e marcar a opção de auto increment (Sempre adiciona + 1 automaticamente)

    5º: O tipo de dado setado em cada variavel no parameters tem que ser igual a campo no DB


    Segue um codigo exemplo de update com parametros...



     
    'AQUI EU FAÇO UM SELECT, PREENCHO UMA VARIAVEL COM O CAMPO VALOR, FAÇO A SUBTRAÇÃO COM O VALOR DA TEXT BOX E FAÇO O UPDATE CONFORME A LINHA SELECIONADA DO DATAGRIDVIEW 
    
    
    Private Sub BtnReceber_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnReceber.Click
            Dim strConexao As String = My.Settings.ConectionVanilson.ToString
            Dim oConn As New SqlConnection
            Dim strSQL As New StringBuilder
            Dim dataSet As DataSet = New DataSetReportVendas
            Dim oCmd As SqlCommand = Nothing
    
    
            Try
                'abrindo conexÆo com o banco de dados.
                oConn.ConnectionString = strConexao
                oConn.Open()
    
                'definindo o SQL do relat¢rio
    
                strSQL.Append(" SELECT ")
                strSQL.Append("  Vendas.VendaID, ")
                strSQL.Append("  Vendas.Produto, ")
                strSQL.Append("  Vendas.Numero_Ficha, ")
                strSQL.Append("  Vendas.Cliente, ")
                strSQL.Append("  Vendas.Vendedor, ")
                strSQL.Append("  Vendas.Data_Vencimento, ")
                strSQL.Append("  Vendas.Valor_Venda, ")
                strSQL.Append("  Vendas.Obs ")
                strSQL.Append(" FROM ")
                strSQL.Append(" Vendas ")
                strSQL.Append(" Where Vendas.VendaID = @VendaID")
                strSQL.Append(" ORDER BY Vendas.Valor_Venda Desc ")
    
    
    
                oCmd = New SqlCommand(strSQL.ToString, oConn)
                oCmd.CommandText = strSQL.ToString
                oCmd.CommandType = CommandType.Text
    
                oCmd.Parameters.Add(New SqlParameter("@VendaID", SqlDbType.Int)).Value = DataGridViewRecebimento.CurrentRow.Cells(0).Value
                'executando o SQLCommand
    
                Dim adapter As SqlDataAdapter = New SqlDataAdapter(oCmd)
    
                adapter.Fill(dataSet, "Vendas")
    
    
                'DataGridViewRecebimento.DataSource = dataSet.Tables("Vendas")
    
                Dim valor As Decimal = Convert.ToDecimal(dataSet.Tables("Vendas").Rows(0).ItemArray.GetValue(6).ToString())
    
    
                valor = valor - Convert.ToDecimal(txtReceber.Text)
    
                strSQL.Append(" UPDATE ")
                strSQL.Append("    Vendas ")
                strSQL.Append("    SET Vendas.Valor_Venda = @Valor ")
                strSQL.Append(" FROM ")
                strSQL.Append("Vendas")
                strSQL.Append(" WHERE Vendas.VendaID = @VendaID")
    
                oCmd = New SqlCommand(strSQL.ToString, oConn)
                oCmd.CommandText = strSQL.ToString
                oCmd.CommandType = CommandType.Text
    
                oCmd.Parameters.Add(New SqlParameter("@VendaID", SqlDbType.Int)).Value = DataGridViewRecebimento.CurrentRow.Cells(0).Value
    
    
                oCmd.Parameters.Add(New SqlParameter("@valor", SqlDbType.Decimal)).Value = valor
                oCmd.ExecuteNonQuery()
    
                MessageBox.Show("OK, valor recebido com sucesso!")
    
                txtReceber.Text = ""
    
                CarregaLoad()
    
    
            Catch ex As Exception
                System.Diagnostics.Debug.WriteLine(ex.Message)
            Finally
                ' liberando os objetos
                oConn.Dispose()
                oConn = Nothing
    
            End Try
    
    
        End Sub
    Espero ter sido útil

    Abraço
    Gilson Dias
    sexta-feira, 4 de dezembro de 2009 11:51
  • Segue um codigo de Insert

     

     

    
    
    
    
      Private Sub btnCadastrarVenda_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCadastrarVenda.Click
            If VerificaValor() = True Then
                MessageBox.Show("Digite todos os Dados.", "Atenção!")
            Else
    
                If txtValor.Text = String.Empty Then
                    txtValor.Text = 0
                End If
    
    
                Dim _Condicao As String
                If rdbPrazo.Checked = True Then
                    _Condicao = "Prazo"
                Else
                    _Condicao = "Vista"
                End If
    
                Dim _Moeda As String
                If rdbDinheiro.Checked Then
                    _Moeda = "Dinheiro"
                Else
                    _Moeda = "Cheque"
                End If
    
                Dim _Ativo As String = "Ativa"
    
                Dim _Valor As Decimal = Convert.ToDecimal(txtValor.Text)
    
    
                Dim conexao As New SqlConnection
                Dim comando As New SqlCommand
    
                conexao = New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True")
                comando = New SqlCommand("INSERT INTO Vendas (Produto,Numero_Ficha,Cliente,Vendedor,Condicao,Moeda,Data_Venda,Data_Vencimento,Valor_Venda,Status,Obs) Values (@Produto,@Numero_Ficha,@Cliente,@Vendedor,@Condicao,@Moeda,@Data_Venda,@Data_Vencimento,@Valor_Venda,@Status,@Obs)", conexao)
    
                comando.Parameters.Add(New SqlParameter("@Produto", Data.SqlDbType.NVarChar)).Value = ComboBoxProdutos.SelectedValue
                comando.Parameters.Add(New SqlParameter("@Numero_Ficha", Data.SqlDbType.NVarChar)).Value = txtFicha.Text
                comando.Parameters.Add(New SqlParameter("@Cliente", Data.SqlDbType.NVarChar)).Value = comboboxCliente.SelectedValue
                comando.Parameters.Add(New SqlParameter("@Vendedor", Data.SqlDbType.NVarChar)).Value = ComboBoxVendedor.SelectedValue
                comando.Parameters.Add(New SqlParameter("@Condicao", Data.SqlDbType.NVarChar)).Value = _Condicao
                comando.Parameters.Add(New SqlParameter("@Moeda", Data.SqlDbType.NVarChar)).Value = _Moeda
                comando.Parameters.Add(New SqlParameter("@Data_Venda", Data.SqlDbType.DateTime)).Value = _DiaDaVenda
                comando.Parameters.Add(New SqlParameter("@Data_Vencimento", Data.SqlDbType.DateTime)).Value = DateTimePickerVencimento.Value.Date
                comando.Parameters.Add(New SqlParameter("@Valor_Venda", Data.SqlDbType.Decimal)).Value = _Valor
                comando.Parameters.Add(New SqlParameter("@Status", Data.SqlDbType.NVarChar)).Value = _Ativo
                comando.Parameters.Add(New SqlParameter("@Obs", Data.SqlDbType.NVarChar)).Value = txtObsVenda.Text
    
    
                Try
                    conexao.Open()
                    comando.ExecuteNonQuery()
    
                    MessageBox.Show("Venda Cadastrada com Sucesso!")
                    Limpa()
                Catch ex As Exception
                    MessageBox.Show("Erro ao lançar venda, Verifique os dados!", "Atenção")
                End Try
    
    
                conexao.Dispose()
                conexao = Nothing
    
            End If
        End Sub
    Abraço
    sexta-feira, 4 de dezembro de 2009 11:54
  • Obrigada pela ajuda pessoal, mas depois que enviei pedindo ajuda consegui resolver o INSERT e o UPDATE.

    Valeu.
    sexta-feira, 4 de dezembro de 2009 13:12



  • Olá prijef,


    Por gentileza, marque como resposta / vote como útil os posts que lhe ajudaram a resolver, para manter o fórum organizado e colaborar com a comunidade.


    Isso só ajuda...


    []'s



    Magno Machado Borba |- Se o post foi util ou resposta nao esqueca de marcar.
    sexta-feira, 4 de dezembro de 2009 19:32