none
Problema ao atualizar dados no banco MDF RRS feed

  • Pergunta

  • Oi, pessoal, eu estou desenvolvendo um software que utiliza o arquivo de banco de dados MDF. Estou tendo problemas ao atualizar os dados. Eu atualizo os dados por meio da aplicação e os dados são realmente atuais, mas quando saio dele e retorno novamente, os dados antigos retornam. O que pode ser?

    Para ajudar, deixo a rotina de atualização para analisar.

    public void SalvarRespostas(Questao salvo)
    {
        StringBuilder query = new StringBuilder();

        query.Append("UPDATE RESPOSTAS ");
        query.Append("SET PERGUNTA = '");
        query.Append(salvo.Pergunta);
        query.Append("' ,RESPOSTA = '");
        query.Append(salvo.Resposta);
        query.Append("' WHERE ID = ");
        query.Append(salvo.Id);

        this.conx = new SqlConnection(StringConexaoBanco);
        this.conx.Open();
        this.command = new SqlCommand(query.ToString(), conx);
        this.data = new SqlDataAdapter(command);
        this.data.Fill(this, "respostas");
        this.data.Update(this, "respostas");
    }
    sexta-feira, 26 de janeiro de 2007 20:30

Respostas

  • Fábio,

    ExecuteNonQuery tem que ser disparado para que o Command seja executado.

    Outra possibilidade é o MDF estar no seu projeto e ser copiado a cada execução ou alteração para o diretório do seu aplicativo. Você vê isso selecionando o banco no solution explorer e indo até a janela Properties. Se a propriedade Copy To Output Directory estiver como Copy Always, é porque o arquivo está sendo sobreposto a cada execução no diretório do aplicativo.

    Abraços,
    Francisco
    OK, Computer - http://thespoke.net/blogs/fbcjunior/default.aspx

    terça-feira, 30 de janeiro de 2007 15:49
    Moderador

Todas as Respostas

  • Fábio,

    Por este código que você está exibindo, em nenhum momento você disparou sua query. Teria que haver algo como:

    this.conx.Open();
    this.command = new SqlCommand(query.ToString(), conx);
    this.command.ExecuteNonQuery();

    Abraços,
    Francisco
    OK, Computer - http://thespoke.net/blogs/fbcjunior/default.aspx

    sábado, 27 de janeiro de 2007 09:49
    Moderador
  •  Francisco B. Cerqueira Junior wrote:

    Fábio,

    Por este código que você está exibindo, em nenhum momento você disparou sua query. Teria que haver algo como:

    this.conx.Open();
    this.command = new SqlCommand(query.ToString(), conx);
    this.command.ExecuteNonQuery();

    Abraços,
    Francisco
    OK, Computer -
    http://thespoke.net/blogs/fbcjunior/default.aspx

     

    Eu também tentei com o ExecuteNonQuery e continua a mesma coisa. Será que é o problema de configuração com o banco?

    terça-feira, 30 de janeiro de 2007 13:51
  • Fábio,

    ExecuteNonQuery tem que ser disparado para que o Command seja executado.

    Outra possibilidade é o MDF estar no seu projeto e ser copiado a cada execução ou alteração para o diretório do seu aplicativo. Você vê isso selecionando o banco no solution explorer e indo até a janela Properties. Se a propriedade Copy To Output Directory estiver como Copy Always, é porque o arquivo está sendo sobreposto a cada execução no diretório do aplicativo.

    Abraços,
    Francisco
    OK, Computer - http://thespoke.net/blogs/fbcjunior/default.aspx

    terça-feira, 30 de janeiro de 2007 15:49
    Moderador
  • Valeu, cara, consegui o que queria. Um abraço.
    terça-feira, 30 de janeiro de 2007 16:15