Inquiridor
Sintaxe de Update Banco access (mdb)

Pergunta
-
Pessoal boa tarde, tenho um sisteminha que utiliza o Access, e de repente uma rotina parou de funcionar, já procurei na sitaxe mas não achei o erro.... Eu rodo o update de um registro, mas simplesmente não dá erro e nem atualiza.....
Podem me ajudar? Segue código
OleDbConnection dbConn = new OleDbConnection( Conexao ); try { OleDbCommand dbCommand = new OleDbCommand(); dbCommand.CommandText = "UPDATE Clientes SET ID_CLI =?, Cliente = ?, ATIVO = ? WHERE ID_CLI = ?"; dbCommand.Parameters.AddWithValue( "ID_CLI" , codigo ); dbCommand.Parameters.AddWithValue( "Cliente" , cliente ); dbCommand.Parameters.AddWithValue( "ATIVO" , ativo == "True" ? "S" : "N" ); dbCommand.Parameters.AddWithValue( "ID_ANTIGO" , codigoAntigo ); dbCommand.CommandType = CommandType.Text; dbCommand.Connection = dbConn; dbConn.Open(); dbCommand.ExecuteNonQuery(); dbConn.Close(); return true; } catch ( Exception ) { throw; } finally { dbConn.Close(); }
Todas as Respostas
-
Você deve declarar os parâmetros na ordem que vai utilizar.
Na sua query você está utilizando duas vezes o ID_CLI e nenhuma vez o ID_ANTIGO.dbCommand.CommandText = "UPDATE Clientes SET ID_ANTIGO = @ID_ANTIGO, Cliente = @Cliente, ATIVO = @ATIVO WHERE ID_CLI = @ID_CLI"; //dbCommand.CommandText = "UPDATE Clientes SET ID_CLI =@ID_CLI, Cliente = @Cliente, ATIVO = @ATIVO WHERE ID_ANTIGO = @ID_ANTIGO"; dbCommand.Parameters.AddWithValue( "@ID_CLI" , codigo ); dbCommand.Parameters.AddWithValue( "@Cliente" , cliente ); dbCommand.Parameters.AddWithValue( "@ATIVO" , ativo == "True" ? "S" : "N" ); dbCommand.Parameters.AddWithValue( "@ID_ANTIGO" , codigoAntigo );
- Sugerido como Resposta Cesar Cassiano Schimanco terça-feira, 19 de novembro de 2013 10:57
-
SUA SQL UPDATE ta errada!
UPDATE Clientes SET Cliente = ?, ATIVO = ? WHERE ID_CLI = ?
Acredito que o ID_CLI é a chave da sua tabela então não atualize ela só use como filtro ...
OleDbConnection dbConn = new OleDbConnection( Conexao ); try { OleDbCommand dbCommand = new OleDbCommand(); dbCommand.CommandText = "UPDATE Clientes SET Cliente = ?, ATIVO = ? WHERE ID_CLI = ?"; dbCommand.Parameters.AddWithValue( "Cliente" , cliente ); dbCommand.Parameters.AddWithValue( "ATIVO" , ativo == "True" ? "S" : "N" ); dbCommand.Parameters.AddWithValue( "ID_CLI" , codigoAntigo ); dbCommand.CommandType = CommandType.Text; dbCommand.Connection = dbConn; dbConn.Open(); dbCommand.ExecuteNonQuery(); dbConn.Close(); return true; } catch ( Exception ) { throw; } finally { dbConn.Close(); }
Eu acredito que seja! Chave! agora se pode me dizer???
- Sugerido como Resposta Fulvio Cezar Canducci Dias terça-feira, 19 de novembro de 2013 03:22