Usuário com melhor resposta
inserir dados de uma text box para uma tabela.

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.
- Movido AndreAlvesLimaModerator terça-feira, 14 de junho de 2011 21:05 (De:Visual Studio - Geral)
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
-
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.- Editado Pablo Batista Cardoso segunda-feira, 6 de junho de 2011 11:41 Correção
- Marcado como Resposta Levi Domingos quinta-feira, 9 de junho de 2011 21:31
-
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
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á. *** -
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. -
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
-
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
-
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 .
-
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.- Editado Pablo Batista Cardoso segunda-feira, 6 de junho de 2011 11:41 Correção
- Marcado como Resposta Levi Domingos quinta-feira, 9 de junho de 2011 21:31
-
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