Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Eu estou criando uma classe pra mim manipular com dados do DB, fiz metodo para SELECTs e funcionam normalmente, mas não sei porque o UPDATE não funciona
Pra mim saber se esta dando exception ou não, fiz ele retornar String e mostrar no textbox, mas ele não dah exception nenhum
Chamando metodo com essa linha
Email1.Text=bdOp.alterContent(Email1.Text, "ContatoEmail");
Metodo 'alterContent':
public String alterContent(String value, String whereValue)
{
String query = "update conteudo set conteudo = '" + value + "' where nome='" + whereValue + "'";
try
{
conn.Open();
cmd.CommandText = query;
cmd.ExecuteNonQuery();
conn.Close();
return "Sucesso.";
}
catch (Exception erro) { return erro.ToString(); }
}
Consigo fazer SELECT nessa mesma tabela tranquilo, também ja possui alguns testes de UPDATE com sucesso, mas esse codigo não esta dando certo
O teste de UPDATE com sucesso que eu falo, é quando eu deixo o query com tudo configurado, sem ter variaveis no meio
Não consigo achar onde esta o erro, por favor, me ajudem
Sim sim, eu ja tentei faze ele retorna query, ele retorna exatamente o query que eu quero, mas nao funciona
Precisava ver todo seu código, por exemplo onde estão declaradas essas variáveis. De qualquer forma, de uma olhada, nesse código e veja se esta esquecendo de algo:
con = new OleDbConnection("Provider = Microsoft.Jet.OLEDB.4.0; Data Source = c:\\mdb\\testmdb.mdb");
cmd = new OleDbCommand();
cmd.Connection = con;
cmd.CommandText = "update Table1 set [Info] = '123' where ID = 123;";
con.Open();
cmd.ExecuteNonQuery();
con.Close();
Abraços...Hummm eu estou usando a biblioteca do Mysql mesmo
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using MySql.Data.MySqlClient;
namespace MasterPages
{
public class BDOperation
{
private String strCon;
private String user = "root";
private String password;
private String server = "127.0.0.1";
private String database;
private MySqlConnection conn;
private MySqlCommand cmd;
private MySqlDataReader reader;
public void connect()
{
try
{
strCon = "server=" + server + "; User Id=" +
user + "; password=" + password + "; database=" + database;
conn = new MySqlConnection();
cmd = new MySqlCommand();
conn.ConnectionString = strCon;
cmd.Connection = conn;
}
catch (Exception erro)
{
}
}
public String alterContent(String valor, String nome)
{
String query = "update conteudo set conteudo = @valor where nome=@nome";
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@valor", valor);
cmd.Parameters.AddWithValue("@nome", nome);
try
{
conn.Open();
cmd.CommandText = query;
cmd.ExecuteNonQuery();
conn.Close();
return "Sucesso.";
}
catch (Exception erro) { return erro.ToString(); }
}
}
}
Aqui esta a classe toda que estou tentando fazer, com algumas alteracoes na parte de editar query
Olá,
Pode parecer besteira, mas o registro que está tentando alterar existe na tabela?
O valor passado no segundo parâmetro do seu método estabelece a condição para encontrar o registro que será alterado.
Então, segundo o exemplo de chamado do método a seguir, deve existir um registro na tabela que o valor do campo "nome" seja "ContatoEmail".
Pode acontecer até do banco de dados estar configurado para ser CaseSensitive.
Acho que vale a pena ver isso.
Email1.Text=bdOp.alterContent(Email1.Text, "ContatoEmail");
public String alterContent(String value, String whereValue)
{
String query = "update conteudo set conteudo = '" + value + "' where nome='" + whereValue + "'";
try
{
conn.Open();
cmd.CommandText = query;
cmd.ExecuteNonQuery();
conn.Close();
return "Sucesso.";
}
catch (Exception erro) { return erro.ToString(); }
}
Abraço,
*Pedro*>
Olá,
Pode parecer besteira, mas o registro que está tentando alterar existe na tabela?
O valor passado no segundo parâmetro do seu método estabelece a condição para encontrar o registro que será alterado.
Então, segundo o exemplo de chamado do método a seguir, deve existir um registro na tabela que o valor do campo "nome" seja "ContatoEmail".
Pode acontecer até do banco de dados estar configurado para ser CaseSensitive.
Acho que vale a pena ver isso.
Email1.Text=bdOp.alterContent(Email1.Text, "ContatoEmail");
public String alterContent(String value, String whereValue)
{
String query = "update conteudo set conteudo = '" + value + "' where nome='" + whereValue + "'";
try
{
conn.Open();
cmd.CommandText = query;
cmd.ExecuteNonQuery();
conn.Close();
return "Sucesso.";
}
catch (Exception erro) { return erro.ToString(); }
}
Abraço,
*Pedro*
O registro existe sim, e tambem o ContatoEmail tambem foi pelo copiar e colar da tabela
O nome da tabela é "conteudo" e o nome do campo que você quer atualizar também é "conteudo"?
String query = "update conteudo set conteudo = '" + value + "' where nome='" + whereValue + "'";
Exemplo de instrução UPDATE:
UPDATE <nome_da_tabela> SET
<nome_do_campo_que_recebe_o_valor> = <valor_a_ser_definido>
[WHERE <nome_do_campo_de_condicao> = <valor_do_campo_de_condicao>]>
O nome da tabela é "conteudo" e o nome do campo que você quer atualizar também é "conteudo"?
String query = "update conteudo set conteudo = '" + value + "' where nome='" + whereValue + "'";
Exemplo de instrução UPDATE:
UPDATE <nome_da_tabela> SET
<nome_do_campo_que_recebe_o_valor> = <valor_a_ser_definido>
[WHERE <nome_do_campo_de_condicao> = <valor_do_campo_de_condicao>]
Exato, ambos se chama 'conteudo'
Que embaçado hein cara...
Você já postou duas versões do seu código.
Está um pouco confuso pra mim.
Posta o código todo (métodos e utliização deles).
Não vi em que momento você chama o método "connect()".
Cara, isso pode ser problema do comando mysql, ao invés de usar o comando global cmd, crie um comando novo nesta forma:
MySqlCommand com = new MySqlCommand("Query",Conexao);
Gente, Problema resolvido!!
O problema era que eu nao tinha colocado if(!isPostBack) no Page_Load
Entao o meu código estava funcionando direito, problema é que ele estava carregando novamente os dados do banco antes de salvar, por isso que eu achei que não estava salvando e também não retornava exception
Obrigado pela ajuda de todos!!
Principalmente do Guilherme Matanza, que resolveu isso pra mim!
Já olhou o resultado da sua query para ver se é o que realmente quer?
Abraços...