Inquiridor
A operação deve usar uma consulta atualizável

Pergunta
-
Sou iniciante como Visual Web.
Quando uso o F5 pelo proprio Visual consigo atualizar, incluir e excluir em um banco de dados do access, mas qd uso via IE ao tentar usar o banco de dados tenho a seguinte mensagem:
Alguém pode me ajudar?
A operação deve usar uma consulta atualizável.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Data.OleDb.OleDbException: A operação deve usar uma consulta atualizável.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[OleDbException (0x80004005): A operação deve usar uma consulta atualizável.] System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) +267 System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) +192 System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) +48 System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) +106 System.Data.OleDb.OleDbCommand.ExecuteNonQuery() +108 System.Web.UI.WebControls.SqlDataSourceView.ExecuteDbCommand(DbCommand command, DataSourceOperation operation) +401 System.Web.UI.WebControls.SqlDataSourceView.ExecuteUpdate(IDictionary keys, IDictionary values, IDictionary oldValues) +721 System.Web.UI.DataSourceView.Update(IDictionary keys, IDictionary values, IDictionary oldValues, DataSourceViewOperationCallback callback) +78 System.Web.UI.WebControls.FormView.HandleUpdate(String commandArg, Boolean causesValidation) +1150 System.Web.UI.WebControls.FormView.HandleEvent(EventArgs e, Boolean causesValidation, String validationGroup) +461 System.Web.UI.WebControls.FormView.OnBubbleEvent(Object source, EventArgs e) +95 System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +35 System.Web.UI.WebControls.FormViewRow.OnBubbleEvent(Object source, EventArgs e) +109 System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +35 System.Web.UI.WebControls.Button.OnCommand(CommandEventArgs e) +115 System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +163 System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5102
Todas as Respostas
-
olá
Bem isto ocorre porque voce precisa ter permissões na pasta onde o banco de dados está.
No caso, quando voce visualiza o site com o servidor do web developer ou visual studio 2005, ele se encarrega de "ajeitar" estas configurações. Mas quando voce fecha o servidor integrado, elas são perdidas.
Para que funcione corretamente executando o IIS a pasta onde o Banco access está deve dar permissão ao usuários ASPNET, assim o mesmo poderá gravar na pasta e o erro deixará de ocorrer.
Para isso faça o seguinte: abra o explorer>>ferramentas>>opções de pasta selecione a guia modo de exibição e desmarque a ultima caixa: "Usar compartilhamento simples de arquivo".
Feito isso, navegue até a pasta do seu banco e clique com o lado direito selecionando "Compartilhamento e segurança". Selecone a aba Segurança e adicione o usuario aspnet. Não se esqueça de clicar em verificar e marcar a caixa "GRAVAR" no painel inferior.
PS: Este procedimento se aplica ao windows XP.
Espero ter ajudado
Sanses
-
Roberto,
esse erro acontece porque o usuário ASPNET não tem a devidas permissões de gravação na pasta/arquivo MDB do Access.
Ricardo Oneda
http://thespoke.net/blogs/oneda/default.aspx -
-
Pessoal,
Como o amigo Alexandre disse, acima em 2007 rsrsrs não adianta somente dar a permissão ao usuário "ASP.NET" não, tem que dar permissão ao usuário "IUSR_servidor" que daí vai funfar na boa e o erro nem vai mais aparecer e as informações serão gravadas show de bola, agora vale lembrar que somente dando as permissões a estes usuários na pasta onde o banco está localizado pelo explorer mesmo quer já funciona.
Espero ter ajudado. =)
Marcelo Ferreira