none
inserir dados de uma text box para uma tabela. RRS feed

  • Pergunta

  • oi pessoal uso o vs 2010

    e estou tentando montar uma rotina para inserir dados numa tabela mas parece que minha rotina nao faz nada.

    ai vai

    Dim conexao As New SqlConnection("data source=.\sqlexpress;attachdbfilename=|datadirectory|\usuarios.mdf;integrated security=true;connect timeout=30;user instance=true")

            Dim cmd As SqlCommand

            Dim sql As String = "insert into usuarios(nome, senha)values('" & txtusuario.Text & "','" & txtsenha.Text & "')"

            cmd = New SqlCommand(sql)

            cmd.Parameters.Add(New SqlParameter("nome", txtusuario.Text))

            cmd.Parameters.Add(New SqlParameter("senha", txtsenha.Text))

            Try

                conexao.Open()

                cmd.ExecuteNonQuery()

                MsgBox("dados gravados com sucesso", MsgBoxStyle.OkOnly, "gravar")

            Catch ex As Exception

            Finally

                conexao.Close()

            End Try

    alguem sabe me dizer o que esta errado.

    terça-feira, 31 de maio de 2011 01:10

Respostas

  • O rpoblema esta aqui:

    Dim sql As String = "insert into usuarios(nome, senha)values(@nome, @senha)";

    Assim ja funciona


    One word frees us of all the weight and pain of life: that word is love.
    • Marcado como Resposta Levi Domingos quinta-feira, 9 de junho de 2011 21:31
    domingo, 5 de junho de 2011 22:35
  • Só para complementar...

    coloque espaços no seu comando e veja se funciona ex.:

     

     

    Dim sql As String = "insert into usuarios (nome, senha) values (@nome, @senha)";
    
    cmd.Parameters.AddWithValue("@nome", txtusuario.Text)
    
        cmd.Parameters.AddWithValue("@senha", txtsenha.Text)

    ...

    Abraços e espero ter ajudado!


    Estudar, Estudar e Estudar! Não existe caminho curto.
    segunda-feira, 6 de junho de 2011 11:39
  • Faz assim, Sua string de conexão estava um pouco confusa. Mudei tb a string sql para o metodo parametrizado.

    Dim conexao As New SqlConnection("Data Source=.\SQLEXPRESS;Initial Catalog=usuarios;Integrated Security=true")
    
        Dim sql As String = "insert into usuarios (nome, senha) values (@nome, @senha)"
    
        Dim cmd As New SqlCommand(sql, conexao)
    
        cmd.Parameters.AddWithValue("nome", txtusuario.Text)
    
        cmd.Parameters.AddWithValue("senha", txtsenha.Text)
    
        Try
          cmd.Connection.Open()
    
          cmd.ExecuteNonQuery()
    
          MsgBox("dados gravados com sucesso", MsgBoxStyle.OkOnly, "gravar")
    
        Catch ex As Exception
    
          MsgBox("deu zica ae mano" & ex.Message, MsgBoxStyle.OkOnly, "erro")
    
        Finally
    
          conexao.Close()
          conexao.Dispose()
          cmd.Dispose()
    
        End Try
    
     


    Reginaldo Villela
    • Marcado como Resposta Levi Domingos quinta-feira, 9 de junho de 2011 21:31
    quarta-feira, 8 de junho de 2011 02:39

Todas as Respostas

  • Andre,  provavelmente esta ocorrendo alguma exceção, porém você não esta exibindo nada coloque um MsgBox exibindo ex.Message.

    Outra observação, os parametros você pode passar assim:

     Dim sql As String = "insert into usuarios(nome, senha)values(@nome,@senha)"

    cmd = New SqlCommand(sql)

    cmd.Parameters.Add(New SqlParameter("@nome", txtusuario.Text))

    cmd.Parameters.Add(New SqlParameter("@senha", txtsenha.Text))

     


    Abraço

    Estevam

    **** Se a reposta foi útil, então não esqueça de marca-lá. ***
    terça-feira, 31 de maio de 2011 16:19
  • Falta usar a tua conecao no comando:    cmd = New SqlCommand(sql, conexao)

    outra coisa, remove o time na sua conecao string, por uma questao de boa logica. Voce tiver um pc lento, a conecao vao ser afectada. Por defeito a conecao tem um tempo de vida quando ela atinge o tempo limite ele dispara um erro, por isso nao precisas usar o timer.

    Esquece escrever os parametos desta forma. o VS e inteligente demais, porque voce nao usa desta forma:

    command.Parameters.AddWithValue("@Nome", textbox1.text);

    http://connect.microsoft.com/VisualStudio/feedback/details/96959/sqlcommand-parameters-addwithvalue-employeefirstname-null-doesnt-get-passed-to-sp


    One word frees us of all the weight and pain of life: that word is love.
    terça-feira, 31 de maio de 2011 16:32
  • pessoal vai o novo codigo porem nada acontece na tabela.

     

    Dim conexao As New SqlConnection("data source=.\sqlexpress;attachdbfilename=|datadirectory|\usuarios.mdf;integrated security=true;user instance=true")

            Dim cmd As SqlCommand

            Dim sql As String = "insert into usuarios(nome, senha)values('" & txtusuario.Text & "','" & txtsenha.Text & "')"

            cmd = New SqlCommand(sql, conexao)

            cmd.Parameters.AddWithValue("@nome", txtusuario.Text)

            cmd.Parameters.AddWithValue("@senha", txtsenha.Text)

            Try

                cmd.Connection.Open()

                cmd.ExecuteNonQuery()

                MsgBox("dados gravados com sucesso", MsgBoxStyle.OkOnly, "gravar")

     

            Catch ex As Exception

                MsgBox("deu zica ae mano" & ex.Message, MsgBoxStyle.OkOnly, "erro")

            Finally

     

                conexao.Close()

            End Try

    quarta-feira, 1 de junho de 2011 20:35
  • O rpoblema esta aqui:

    Dim sql As String = "insert into usuarios(nome, senha)values(@nome, @senha)";

    Assim ja funciona


    One word frees us of all the weight and pain of life: that word is love.
    • Marcado como Resposta Levi Domingos quinta-feira, 9 de junho de 2011 21:31
    domingo, 5 de junho de 2011 22:35
  • Malange

    ainda assim nao funciona jatentei de varias formas e nao consegui inserir novos registros em meu banco de dados 

    sera que no meu caso nao seria necessario implementar uma rotina para atualizar o banco de dados, pois ate agora nao consegui fazer isso.

    obrigado pela ajuda e paciencia .

     

    segunda-feira, 6 de junho de 2011 03:26
  • Só para complementar...

    coloque espaços no seu comando e veja se funciona ex.:

     

     

    Dim sql As String = "insert into usuarios (nome, senha) values (@nome, @senha)";
    
    cmd.Parameters.AddWithValue("@nome", txtusuario.Text)
    
        cmd.Parameters.AddWithValue("@senha", txtsenha.Text)

    ...

    Abraços e espero ter ajudado!


    Estudar, Estudar e Estudar! Não existe caminho curto.
    segunda-feira, 6 de junho de 2011 11:39
  • Faz assim, Sua string de conexão estava um pouco confusa. Mudei tb a string sql para o metodo parametrizado.

    Dim conexao As New SqlConnection("Data Source=.\SQLEXPRESS;Initial Catalog=usuarios;Integrated Security=true")
    
        Dim sql As String = "insert into usuarios (nome, senha) values (@nome, @senha)"
    
        Dim cmd As New SqlCommand(sql, conexao)
    
        cmd.Parameters.AddWithValue("nome", txtusuario.Text)
    
        cmd.Parameters.AddWithValue("senha", txtsenha.Text)
    
        Try
          cmd.Connection.Open()
    
          cmd.ExecuteNonQuery()
    
          MsgBox("dados gravados com sucesso", MsgBoxStyle.OkOnly, "gravar")
    
        Catch ex As Exception
    
          MsgBox("deu zica ae mano" & ex.Message, MsgBoxStyle.OkOnly, "erro")
    
        Finally
    
          conexao.Close()
          conexao.Dispose()
          cmd.Dispose()
    
        End Try
    
     


    Reginaldo Villela
    • Marcado como Resposta Levi Domingos quinta-feira, 9 de junho de 2011 21:31
    quarta-feira, 8 de junho de 2011 02:39