Usuário com melhor resposta
Problema ao atualizar dados no banco MDF

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");
}
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
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 -
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.aspxEu também tentei com o ExecuteNonQuery e continua a mesma coisa. Será que é o problema de configuração com o banco?
-
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 -