Usuário com melhor resposta
Update em banco de dados com textbox

Pergunta
-
Respostas
-
boas, ve esta thread:
http://social.msdn.microsoft.com/forums/pt-br/vscsharppt/thread/A0438B2D-4F2D-4BBC-8CAA-F21DAEC1847B
espero ter ajudado.- Marcado como Resposta Bruno Gaiola sexta-feira, 11 de fevereiro de 2011 16:25
-
boas, usa oledb. ve esse link, é só adaptar , todas a logica é igual.
http://msdn.microsoft.com/en-us/library/system.data.oledb%28v=vs.71%29.aspx
espero ter ajudado.- Marcado como Resposta Bruno Gaiola sexta-feira, 11 de fevereiro de 2011 16:25
-
Bruno segue umm exemplo onde tenho uma tabela de cidades com os campos "Id(int, PK)", "Cidade(Texto)" e realizo uma atualização na mesma e no meu form tenho um textbox (txtId) onde o usuário informa o ´código da cidade que deseja alterar e um segundo textBox(txtCidade) onde o usuario digita o novo nome da cidade e um botão alterar que realiza o update segue abaixo o código do botão alterar.
Claro isso é um simples exemplo de como relizar o update:
Abraços e espero ter ajudado!private void btnAlterar_Click(object sender, EventArgs e) { //Intâncio a conexão OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\ze goiaba\Desktop\Teste2.mdb"); //Instâncio a concatenação de string //que irá conter o comando StringBuilder sql = new StringBuilder(); //monto o comando //Atulaiza a tabela cidades setando //o campo cidade(que no meu caso... //contem o nome da cidade a ser alterada). sql.Append("UPDATE Cidades SET Cidade=@Cidade "); //Onde o código é igual ao informado //no textbox Id sql.Append("WHERE Id=@Id"); //Monto o comando passado a string gerada //e a conexão OleDbCommand cmd = new OleDbCommand(sql.ToString(), conn); //preencho os parâmetros com as informações cmd.Parameters.AddWithValue("@Cidade", txtCidade.Text); cmd.Parameters.AddWithValue("@Id", txtId.Text); //abro a conexão conn.Open(); //executo o comando cmd.ExecuteNonQuery(); //fecho a conexão conn.Close(); }
Estudar, Estudar e Estudar! Não existe caminho curto.- Marcado como Resposta Bruno Gaiola sexta-feira, 11 de fevereiro de 2011 13:56
- Não Marcado como Resposta Bruno Gaiola sexta-feira, 11 de fevereiro de 2011 15:43
- Marcado como Resposta Bruno Gaiola sexta-feira, 11 de fevereiro de 2011 16:25
-
bruno vc quer alterar a chave primária da tabela?
e outra coisa vc deve fazer o comando como como lhe passei:
//vc tem que especificar qual codigo deseja alterar //implementando a clausula where Dim Command As OleDbCommand = New OleDbCommand("update Chapas set Codigo=@Codigo Where ... ", con) //e o parâmetro vc esqueceu de colocar o @ Command.Parameters.AddWithValue("@Codigo", TextBoxCodigo.Text)
Abraços qualquer dúvida posta ai!
Estudar, Estudar e Estudar! Não existe caminho curto.- Marcado como Resposta Bruno Gaiola sexta-feira, 11 de fevereiro de 2011 16:25
-
Não bruno, a chave primária não é alterável pois ela é a referência do seu registro em sua tabela, ou seja, não se pode alterar a chave primária.
Estudar, Estudar e Estudar! Não existe caminho curto.- Marcado como Resposta Bruno Gaiola sexta-feira, 11 de fevereiro de 2011 16:25
-
//tenta assim acho que é pq vc alterou a ordem dos parâmetros.
Dim Command As OleDbCommand = New OleDbCommand("update Chapas set Descricao=@Descricao where Codigo=@CodigoSelecionado", con) Command.Parameters.AddWithValue("@Descricao", TextBoxDescricao.Text) Command.Parameters.AddWithValue("@CodigoSelecionado", LabelCodigoSelecionado.Text) con.Open() Command.ExecuteNonQuery() con.Close()
Estudar, Estudar e Estudar! Não existe caminho curto.- Editado Pablo Batista Cardoso sexta-feira, 11 de fevereiro de 2011 16:17 correcao
- Marcado como Resposta Bruno Gaiola sexta-feira, 11 de fevereiro de 2011 16:25
Todas as Respostas
-
boas, ve esta thread:
http://social.msdn.microsoft.com/forums/pt-br/vscsharppt/thread/A0438B2D-4F2D-4BBC-8CAA-F21DAEC1847B
espero ter ajudado.- Marcado como Resposta Bruno Gaiola sexta-feira, 11 de fevereiro de 2011 16:25
-
desculpa,
nao especifiquei
mas estou usando mdb
Bruno Gaiola Domus & Lepton Des. Software- Marcado como Resposta Bruno Gaiola sexta-feira, 11 de fevereiro de 2011 16:25
- Não Marcado como Resposta AndreAlvesLimaModerator sábado, 12 de fevereiro de 2011 12:04
-
boas, usa oledb. ve esse link, é só adaptar , todas a logica é igual.
http://msdn.microsoft.com/en-us/library/system.data.oledb%28v=vs.71%29.aspx
espero ter ajudado.- Marcado como Resposta Bruno Gaiola sexta-feira, 11 de fevereiro de 2011 16:25
-
então, mas este codigo ele esta sendo feito para inserir
na verdade, eu quero fazer um update de dados que ja existem no banco
que foram exibidos em textbox.
Bruno Gaiola Domus & Lepton Des. Software- Marcado como Resposta Bruno Gaiola sexta-feira, 11 de fevereiro de 2011 16:25
- Não Marcado como Resposta AndreAlvesLimaModerator sábado, 12 de fevereiro de 2011 12:04
-
Bruno segue umm exemplo onde tenho uma tabela de cidades com os campos "Id(int, PK)", "Cidade(Texto)" e realizo uma atualização na mesma e no meu form tenho um textbox (txtId) onde o usuário informa o ´código da cidade que deseja alterar e um segundo textBox(txtCidade) onde o usuario digita o novo nome da cidade e um botão alterar que realiza o update segue abaixo o código do botão alterar.
Claro isso é um simples exemplo de como relizar o update:
Abraços e espero ter ajudado!private void btnAlterar_Click(object sender, EventArgs e) { //Intâncio a conexão OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\ze goiaba\Desktop\Teste2.mdb"); //Instâncio a concatenação de string //que irá conter o comando StringBuilder sql = new StringBuilder(); //monto o comando //Atulaiza a tabela cidades setando //o campo cidade(que no meu caso... //contem o nome da cidade a ser alterada). sql.Append("UPDATE Cidades SET Cidade=@Cidade "); //Onde o código é igual ao informado //no textbox Id sql.Append("WHERE Id=@Id"); //Monto o comando passado a string gerada //e a conexão OleDbCommand cmd = new OleDbCommand(sql.ToString(), conn); //preencho os parâmetros com as informações cmd.Parameters.AddWithValue("@Cidade", txtCidade.Text); cmd.Parameters.AddWithValue("@Id", txtId.Text); //abro a conexão conn.Open(); //executo o comando cmd.ExecuteNonQuery(); //fecho a conexão conn.Close(); }
Estudar, Estudar e Estudar! Não existe caminho curto.- Marcado como Resposta Bruno Gaiola sexta-feira, 11 de fevereiro de 2011 13:56
- Não Marcado como Resposta Bruno Gaiola sexta-feira, 11 de fevereiro de 2011 15:43
- Marcado como Resposta Bruno Gaiola sexta-feira, 11 de fevereiro de 2011 16:25
-
quando tento fazer o update ele me da esse erro:
As alterações solicitadas para a tabela não foram satisfatórias já que criariam valores duplicados no índice, chave primária ou relação. Altere os dados no campo ou campos que contêm os dados duplicados, remova o índice ou redefina o índice para possibilitar entradas duplicadas e tente novamente.
fiz dessa forma:
Public con As New System.Data.OleDb.OleDbConnection("Provider = Microsoft.jet.OleDB.4.0;Data Source = cadastro.mdb;")
Dim Command As OleDbCommand = New OleDbCommand("update Chapas set Codigo=@Codigo", con)
Command.Parameters.AddWithValue("Codigo", TextBoxCodigo.Text)
con.Open()
Command.ExecuteNonQuery()
con.Close()
Bruno Gaiola Domus & Lepton Des. Software- Marcado como Resposta Bruno Gaiola sexta-feira, 11 de fevereiro de 2011 16:25
- Não Marcado como Resposta AndreAlvesLimaModerator sábado, 12 de fevereiro de 2011 12:04
-
bruno vc quer alterar a chave primária da tabela?
e outra coisa vc deve fazer o comando como como lhe passei:
//vc tem que especificar qual codigo deseja alterar //implementando a clausula where Dim Command As OleDbCommand = New OleDbCommand("update Chapas set Codigo=@Codigo Where ... ", con) //e o parâmetro vc esqueceu de colocar o @ Command.Parameters.AddWithValue("@Codigo", TextBoxCodigo.Text)
Abraços qualquer dúvida posta ai!
Estudar, Estudar e Estudar! Não existe caminho curto.- Marcado como Resposta Bruno Gaiola sexta-feira, 11 de fevereiro de 2011 16:25
-
posso dessa forma alterar a chave primaria da tabela ?
fiz dessa forma, mas nao funcionou
Dim Command As OleDbCommand = New OleDbCommand("update Chapas set Descricao=@Descricao where Codigo=@CodigoSelecionado", con)
Command.Parameters.AddWithValue("@CodigoSelecionado", LabelCodigoSelecionado.Text)
Command.Parameters.AddWithValue("@Descricao", TextBoxDescricao.Text)
con.Open()
Command.ExecuteNonQuery()
con.Close()
Bruno Gaiola Domus & Lepton Des. Software- Marcado como Resposta Bruno Gaiola sexta-feira, 11 de fevereiro de 2011 16:25
- Não Marcado como Resposta AndreAlvesLimaModerator sábado, 12 de fevereiro de 2011 12:05
-
Não bruno, a chave primária não é alterável pois ela é a referência do seu registro em sua tabela, ou seja, não se pode alterar a chave primária.
Estudar, Estudar e Estudar! Não existe caminho curto.- Marcado como Resposta Bruno Gaiola sexta-feira, 11 de fevereiro de 2011 16:25
-
fiz dessa forma para alterar os outros campos
mas ainda não funcionou
Dim Command As OleDbCommand = New OleDbCommand("update Chapas set Descricao=@Descricao where Codigo=@CodigoSelecionado", con)
Command.Parameters.AddWithValue("@CodigoSelecionado", LabelCodigoSelecionado.Text)
Command.Parameters.AddWithValue("@Descricao", TextBoxDescricao.Text)
con.Open()
Command.ExecuteNonQuery()
con.Close()
Bruno Gaiola Domus & Lepton Des. Software -
//tenta assim acho que é pq vc alterou a ordem dos parâmetros.
Dim Command As OleDbCommand = New OleDbCommand("update Chapas set Descricao=@Descricao where Codigo=@CodigoSelecionado", con) Command.Parameters.AddWithValue("@Descricao", TextBoxDescricao.Text) Command.Parameters.AddWithValue("@CodigoSelecionado", LabelCodigoSelecionado.Text) con.Open() Command.ExecuteNonQuery() con.Close()
Estudar, Estudar e Estudar! Não existe caminho curto.- Editado Pablo Batista Cardoso sexta-feira, 11 de fevereiro de 2011 16:17 correcao
- Marcado como Resposta Bruno Gaiola sexta-feira, 11 de fevereiro de 2011 16:25
-
Olá Bruno,
Por favor, somente marque como resposta os posts que te ajudaram a resolver a sua questão (e não os seus próprios posts)...
Obrigado pelo apoio...
André Alves de Lima
Microsoft MVP - Client App Dev
Visite o meu site: http://www.andrealveslima.com.br
Me siga no Twitter: @andrealveslima