none
update em mysql, alguém pode me ajudar? RRS feed

  • Pergunta

  • Olá pessoal, estou com um problema em um update no banco de dados mysql com C#.
    Tenho um datagridview que mostra os dados da tabela usuario e quando algum dado é alterado, ele chama um método para dar um update na tabela.
    Estou utilizando Mysql 5.1 e MysqlConnector 5.1.7 para acessar o BD.
    Segue o código do método que atualiza o banco de dados:

    public static int dataSetAceptChanges(string cellContent)
            {
                int i;
                DataRow dr = ds.Tables["usuario"].Rows[0];
                dr["NOME"] = cellContent;
                i = adpter.Update(ds.Tables["usuario"]);
                ds.AcceptChanges(); 
                ds.Tables["usuario"].AcceptChanges();
                return i; 
            }
    O parâmetro cellContent, passado para o método é o conteúdo atualizado da célula, ou seja, é o valor que deve ser salvo no banco de dados, ja conferi e esta tudo certo até ai.
    Os objetos MysqlDataAdapter e DataSet estão declarados como variáveis global na classe, por isso nao sao instanciados no método.
    private static MySqlConnection conn = new MySqlConnection("Server=localhost;Database=suporte;Uid=root;Pwd=senha");
            private static DataSet ds = new DataSet();
            private static MySqlDataAdapter adpter = new MySqlDataAdapter("SELECT * FROM TB_USUARIO", conn);
            private static MySqlCommandBuilder builder = new MySqlCommandBuilder(adpter);
    O problema é que este código não atualiza o banco de dados, quando é chamado o método adpter.Update(), nao atualiza, e me retorna o valor 0.
    Alguem pode me ajudar??
    domingo, 29 de março de 2009 15:26

Todas as Respostas

  • Olá Jappa,

    Vc pde passar como esta populando o DataSet ?


    Att.


    Nelson Borges - Analista de Sistemas
    domingo, 29 de março de 2009 23:13
  • Olá Nelson, vou colocar abaixo o codigo que popula o dataset
    ele faz parte da mesma classe que postei anteriormente.

    private static MySqlConnection conn = new MySqlConnection("Server=localhost;Database=suporte;Uid=root;Pwd=senha");
            private static DataSet ds = new DataSet();
            private static MySqlDataAdapter adpter = new MySqlDataAdapter("SELECT * FROM TB_USUARIO", conn);
            private static MySqlCommandBuilder builder = new MySqlCommandBuilder(adpter);
    
            public static DataSet getAllUsers()
            {            
                try
                {
                    adpter.Fill(ds, "usuario"); 
                }
                catch(Exception ex)
                {
                    throw new Exception("Erro: " + ex.Message);
                }
                return ds;
            }
    Valeu!!
    segunda-feira, 30 de março de 2009 03:47