Durbano 1 Denunciar post Postado Janeiro 15, 2013 Preciso que seja feito UPDATE com base na tabela passada como parâmetro objDT (tipo DataTable) porém não acontece nada, nenhum erro. Parece que não está executando. Alguem tem alguma ideia do que possa ser ? private void OperationUpdate() { using (objDA = new MySqlDataAdapter()) { // Set the UPDATE command and parameters. objDA.Update(objDT); objDA.UpdateCommand = new MySqlCommand("UPDATE Artigo SET titulo=@VarTitulo, imagem=@VarImagem, manchete=@VarManchete, mensagem=@VarMensagem WHERE id=@VarId",objCONN); objDA.UpdateCommand.Parameters.Add("@VarTitulo", MySqlDbType.VarChar, 150, "titulo"); objDA.UpdateCommand.Parameters.Add("@VarImagem", MySqlDbType.VarChar, 150, "imagem"); objDA.UpdateCommand.Parameters.Add("@VarManchete", MySqlDbType.VarChar, 200, "manchete"); objDA.UpdateCommand.Parameters.Add("@VarMensagem", MySqlDbType.VarChar, 8000, "mensagem"); objDA.UpdateCommand.Parameters.Add("@VarId", MySqlDbType.Int32, 11, "id"); objDA.UpdateCommand.ExecuteNonQuery(); } } Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
KhaosDoctor 242 Denunciar post Postado Janeiro 15, 2013 Você precisa definir uma conexão ao banco de dados e abrí-la antes de executar qualquer operação: MySqlConnection con = new MySqlConnection("ConnectionString"); objDA.UpdateCommand = new MySqlCommand("UPDATE Artigo SET titulo=@VarTitulo, imagem=@VarImagem, manchete=@VarManchete, mensagem=@VarMensagem WHERE id=@VarId",objCONN); objDA.UpdateCommand.Parameters.Add("@VarTitulo", MySqlDbType.VarChar, 150, "titulo"); objDA.UpdateCommand.Parameters.Add("@VarImagem", MySqlDbType.VarChar, 150, "imagem"); objDA.UpdateCommand.Parameters.Add("@VarManchete", MySqlDbType.VarChar, 200, "manchete"); objDA.UpdateCommand.Parameters.Add("@VarMensagem", MySqlDbType.VarChar, 8000, "mensagem"); objDA.UpdateCommand.Parameters.Add("@VarId", MySqlDbType.Int32, 11, "id", <suaconexao>); Depois você coloca con.open(); Comando.ExecuteNonQuery();con.Close(); Compartilhar este post Link para o post Compartilhar em outros sites
Durbano 1 Denunciar post Postado Janeiro 16, 2013 KhaosDoctor obrigado pela resposta. objCONN é uma variável global. O estado da conexão está aberta. Alguma outra ideia ? valeu ! Compartilhar este post Link para o post Compartilhar em outros sites
KhaosDoctor 242 Denunciar post Postado Janeiro 16, 2013 Funcionou? Desculpe eu errei uma parte do seu código, adicione o código assim: objDA.Update(objDT); objCONN.Open(); objDA.UpdateCommand = new MySqlCommand("UPDATE Artigo SET titulo=@VarTitulo, imagem=@VarImagem, manchete=@VarManchete, mensagem=@VarMensagem WHERE id=@VarId",objCONN); objDA.UpdateCommand.Parameters.Add("@VarTitulo", MySqlDbType.VarChar, 150, "titulo"); objDA.UpdateCommand.Parameters.Add("@VarImagem", MySqlDbType.VarChar, 150, "imagem"); objDA.UpdateCommand.Parameters.Add("@VarManchete", MySqlDbType.VarChar, 200, "manchete"); objDA.UpdateCommand.Parameters.Add("@VarMensagem", MySqlDbType.VarChar, 8000, "mensagem"); objDA.UpdateCommand.Parameters.Add("@VarId", MySqlDbType.Int32, 11, "id"); objDA.UpdateCommand.ExecuteNonQuery(); objCONN.Close(); Compartilhar este post Link para o post Compartilhar em outros sites
Durbano 1 Denunciar post Postado Janeiro 16, 2013 Não funcionou... A conexão está aberta já. É a variável global objCONN, eu abro a conexão em outro método antes de chamar este. objDA.Update(objDT); objCONN.Open(); objDA.UpdateCommand = new MySqlCommand("UPDATE Artigo SET titulo=@VarTitulo, imagem=@VarImagem, manchete=@VarManchete, mensagem=@VarMensagem WHERE id=@VarId",objCONN); objDA.UpdateCommand.Parameters.Add("@VarTitulo", MySqlDbType.VarChar, 150, "titulo"); objDA.UpdateCommand.Parameters.Add("@VarImagem", MySqlDbType.VarChar, 150, "imagem"); objDA.UpdateCommand.Parameters.Add("@VarManchete", MySqlDbType.VarChar, 200, "manchete"); objDA.UpdateCommand.Parameters.Add("@VarMensagem", MySqlDbType.VarChar, 8000, "mensagem"); objDA.UpdateCommand.Parameters.Add("@VarId", MySqlDbType.Int32, 11, "id"); objDA.UpdateCommand.ExecuteNonQuery(); objCONN.Close(); Compartilhar este post Link para o post Compartilhar em outros sites
KhaosDoctor 242 Denunciar post Postado Janeiro 16, 2013 Ele mostra algum erro? Compartilhar este post Link para o post Compartilhar em outros sites
Durbano 1 Denunciar post Postado Janeiro 16, 2013 Não dá nenhum erro.. Parece que não executa o UPDATE, as alterações feitas do DataTable (objDT) não são refletidas no tabela Artigo. Resolvi desde modo Não queria fazer este loop, mas por hora foi a forma que encontrei para sair deste problema. objDA.UpdateCommand = new MySqlCommand("UPDATE Artigo SET titulo = @VarTitulo, imagem = @VarImagem, manchete = @VarManchete, mensagem = @VarMensagem WHERE id = @VarId", objCONN); objDA.UpdateCommand.Parameters.Add("@VarTitulo", MySqlDbType.VarChar); objDA.UpdateCommand.Parameters.Add("@VarImagem", MySqlDbType.VarChar); objDA.UpdateCommand.Parameters.Add("@VarManchete", MySqlDbType.VarChar); objDA.UpdateCommand.Parameters.Add("@VarMensagem", MySqlDbType.VarChar); objDA.UpdateCommand.Parameters.Add("@VarId", MySqlDbType.Int32); foreach (DataRow row in objDT.Rows) { objDA.UpdateCommand.Parameters["@VarTitulo"].Value = row["titulo"].ToString(); objDA.UpdateCommand.Parameters["@VarImagem"].Value = row["imagem"].ToString(); objDA.UpdateCommand.Parameters["@VarManchete"].Value = row["manchete"].ToString(); objDA.UpdateCommand.Parameters["@VarMensagem"].Value = row["mensagem"].ToString(); objDA.UpdateCommand.Parameters["@VarId"].Value = row["id"].ToString(); objDA.UpdateCommand.ExecuteNonQuery(); } Compartilhar este post Link para o post Compartilhar em outros sites
KhaosDoctor 242 Denunciar post Postado Janeiro 16, 2013 Ja tentou executar a query e atualizar o grid? Compartilhar este post Link para o post Compartilhar em outros sites