程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Access數據庫 >> Access數據庫入門 >> Access數據庫提醒OleDbException (0x80004005): 操作必需應用一個可更新的查詢

Access數據庫提醒OleDbException (0x80004005): 操作必需應用一個可更新的查詢

編輯:Access數據庫入門

Access數據庫提醒OleDbException (0x80004005): 操作必需應用一個可更新的查詢。本站提示廣大學習愛好者:(Access數據庫提醒OleDbException (0x80004005): 操作必需應用一個可更新的查詢)文章只能為提供參考,不一定能成為您想要的結果。以下是Access數據庫提醒OleDbException (0x80004005): 操作必需應用一個可更新的查詢正文


解釋: 履行以後 Web 要求時代,湧現未處置的異常。請檢討客棧跟蹤信息,以懂得有關該毛病和代碼中招致毛病的出處的具體信息。

異常具體信息: System.Data.OleDb.OleDbException: 沒法從指定的數據表中刪除。

源毛病:


行 37: comm.CommandText = sqlstr;
行 38: //comm.Prepare();
行 39: cout = comm.ExecuteNonQuery();
行 40:
行 41: conn.Close();


源文件: d:\SOVO驗收代碼\Base\App_Code\JetAccess.cs 行: 39

[OleDbException (0x80004005): 沒法從指定的數據表中刪除。]
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
JetAccess.Execute(OleDbParameter[] parameters, String sqlstr) in d:\SOVO驗收代碼\Base\App_Code\JetAccess.cs:39
NewsData.DeleteNews(Int32 id) in d:\SOVO驗收代碼\Base\App_Code\NewsData.cs:29
_Default.GridView1_RowDeleting(Object sender, GridViewDeleteEventArgs e) in d:\SOVO驗收代碼\Base\System\Default.aspx.cs:46
System.Web.UI.WebControls.GridView.OnRowDeleting(GridViewDeleteEventArgs e) +133
System.Web.UI.WebControls.GridView.HandleDelete(GridViewRow row, Int32 rowIndex) +604
System.Web.UI.WebControls.GridView.HandleEvent(EventArgs e, Boolean causesValidation, String validationGroup) +1155
System.Web.UI.WebControls.GridView.RaisePostBackEvent(String eventArgument) +199
System.Web.UI.WebControls.GridView.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) +174
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5102

處理辦法以下:
在數據文件*.mdb上右鍵翻開屬性對話框,在'平安'標簽下須要添加IUSR_XXX(XXX為你的機械名),也就是添加Internet Guest Account帳戶,再將此帳戶的權限設為可讀,可寫.(本來這麼簡略就處理了的成績,我靠:) )
假如在右鍵屬性對話框內找不到'平安'標簽,須要將文件夾選項下的視圖內的'應用簡略文件同享(默許)'的勾去失落.

緣由:
有幾個重要的毛病緣由:
這個毛病產生在當你的法式試圖履行更新數據庫或其它相似操作時。這是由於
ADO因為以下的幾個緣由而不克不及夠寫數據庫形成的。
1。最廣泛的緣由是匿名用戶帳號(IUSR_MACHINE)對該數據庫文件沒有寫權限。
要處理這個成績,在治理器中調劑數據庫文件的屬性,讓匿名用戶有准確的權限。
當應用ACCESS數據庫時,不只要給文件寫的權限,還要給該目次寫 的權限,由於
Jet須要在該目次樹立一個.ldb文件。
2。第二個緣由是數據庫沒有應用准確的形式翻開。應當應用上面的辦法翻開。
SQL = "UPDATE Products Set UnitPrice = 2;"
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Mode = 3 ''3 = adModeReadWrite
Conn.Open "myDSN"
Conn.Execute(SQL)
Conn.Close
留意默許的Mode是設置0(adModeUnknown),它是許可更新的。
3。還有能夠是在ODBC治理器中將該DSN的只讀選項選中。
4。你是在同時更新兩個表中的字段,也會湧現這個毛病信息,處理方法是離開來更新
這兩個表中各自字段。
5。當你應用了一個從低版本中(如ACCESS2.0,ACCESS7.0)載入到高版本(ACCESS 2000)
中的查詢時,在履行這個查詢是會湧現該毛病。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved